• 2024-11-1020241110
    T1前缀后缀首先\(q\)的数据范围是在搞笑,因为最多\(n\)次操作之后序列就没了。然后可以考虑\(f_{l,r}\)表示还剩\([l,r]\)时最多执行到了哪个操作。转移考虑下一个操作在左边做还是在右边做即可。可以对每个询问预处理出每个点左右第一个能接这个询问的点。时间复杂度
  • 2024-10-302024 牛客多校 1
    T1ABitCommon首先只需要考虑所有放了奇数的位置。发现所有奇数去掉最低位置后的\(\texttt{AND}\)和为\(0\),也就是最低位外每一位上至少有\(1\)个\(0\)。放偶数的位置怎么填都无所谓。枚举有几个奇数,答案即为\(\sum\limits_{k=1}^n\binom{n}{k}(2^k-1)^{m-1}2^{(
  • 2024-10-30Codeforces 4 A-D
    题面ABCD难度:红橙橙黄题解A题目大意:判断一个正整数\(w\)能否表示成两个正偶数之和。解题思路:考虑分类讨论\(w\)。对于\(1\)和\(2\),显然为NO;对于\(w\ge3\),考虑将其表示为\(x+2\)。根据题意,若\(x\)为偶数,则答案显然必为YES;否则必然为NO。因为\(
  • 2024-10-05[赛记] 多校A层冲刺NOIP2024模拟赛01【衡中】
    构造字符串50pts错解50pts;考虑正解,对于题目中的要求,我们可以转换成若干个相等与不等的操作,若相等则用并查集合并一下,不等则连边,若同块连边则无解,否则从前往后遍历赋值,每次找所连边其它块值的$\operatorname{mex}$即可;时间复杂度:$\Theta(nm\alpha(n))$;点击查看代码#i
  • 2024-09-19P1108 低价购买 题解
    这题在求最长下降子序列的基础上加了一个求方案数的要求,这就让这道题目变难了很多。我们考虑我们在求最长下降子序列的时候,总是从这一位,要么重新开始计数,要么只和前面的有关,所以前面的信息完全丢失了,无法判断有多少方案,所以我们就要针对前面的方案数设计一个dp来统计。可以称之
  • 2024-09-18SMU Autumn 2024 Trial 2
    A.Stand-upComedian只要a不为0,那么由于b和c是相互制约的,比如25106这个样例,讲完两个笑话以后两个人的容量为22,可以选择一个人+1,一个人-1,那么就可进行min(b,c)*2次,进行完后,两个人的容量仍为2,2,最后要看还剩几个笑话可以讲,就是min(a+1,abs(b-c)+d),就是容量很大时可以把笑话全讲完,
  • 2024-09-10【HNOI2003】激光炸弹
    【HNOI2003】激光炸弹一道二维前缀和,是一道比较经典的纯板子题目,针对这道题,我将再次进行二维前缀和的梳理首先,要进行前缀和数组的推理得到d[i][j]+=d[i-1][j]+d[i][j-1]-d[i-1][j-1];但是这也可以用以下代码实现:for(inti=1;i<=maxn;i++) { for(intj=1;j<=maxn;j++) {
  • 2024-09-01新赛道-2024.8 CSP-J组月赛-T4
    题目描述王老师最近搬家了,需要购置 a 台家电、b 件家具和 c 个装饰。他来到了商场,商场正好在举行优惠大酬宾,每家店铺都推出了一系列活动。一共有 n=a+b+c 家店铺,活动期间在第 i 家店铺购买家电只需要 ai​ 元一台,购买家具只需要 bi​ 元一件,购买装饰只需要 ci​
  • 2024-07-13G. Ultra-Meow
    原题链接题解遍历所有的子集肯定不行,所以我么考虑某些数作为\(mex\)的值时的贡献,也就是求\(i\)作为\(mex\)的值时,有多少子集的\(mex\)是\(i\)实施对于\(i\leqn\),假设子集选了\(k_1\)个小于\(i\)的数,\(k_2\)个大于\(i\)的数,则有\(1+(i-1)-k_1=k_1+k_2\)
  • 2024-05-18jenkins docker 开启debug 简单说明
    jenkinsdocker镜像为了方便调试,已经内置了一个环境变量可以方便的开启基于jdwp协议的debug处理,以下是一个简单使用参考配置docker-compose文件services:jenkins:image:jenkins/jenkins:ltsenvironment:-DEBUG=trueports:
  • 2024-05-16远程debug
    1、首先配置idea点击右上角的编辑配置.2、配置jvm将刚才idea生成的jvm指令复制下来,就是如下内容(注意要从你的idea中复制)-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005在粘贴之前,要拼接上java-jar命令,还有server=y,suspend=y命令,最后拼接
  • 2024-05-0420240503
    T1NFLSOJP2023050961捉迷藏首先只需要考虑所有叶子,只要每个叶子都连向了另一个距离超过\(2\)的叶子,则符合要求。距离超过\(2\)等价于在不同的父亲下。则问题变为一堆点,每个点有颜色,同色点间没有边,异色点间两两有边,求最大匹配。结论:设点最多的颜色\(c\)有\(x\)个点,若
  • 2024-03-28P1265 公路修建
    原题链接题解1.每个城市选择一个与它最近的城市2.如果三个或以上的城市申请修建的公路成环。如下图,A申请修建公路AB,B申请修建公路BC,C申请修建公路CA。则政府将否决其中最短的一条公路的修建申请;但是这条不成立,请看这条题解或者下图由此得出这题就是最小生成树,虽略有
  • 2024-03-09牛客小白月赛88补题D
    D-我不是大富翁题意:做法:一开始是往贪心方面想,但是很明显,贪不了。又因为走的步先后顺序没影响,可以用dp来写。暴力也差不多。值得注意的点是动力序列可以一边读入一边处理,省了点空间。如果dp[5005][5005]这样开的话会MLE,实际上在dp的过程中,用到的只是i和i-1两行,其余都是多余的。
  • 2024-02-27P4017 最大食物链计数
    原题链接题解首先这题是一个有向无环图,如图,每个结点上方显示的是到达该节点的路径数,我们不难发现每个结点的路径数都由其入度结点的路径数之和,最终得出5结点的路径数。那么由此我们只需要求出每个无出度结点的路径数再相加即可。 code #include<bits/stdc++.h>usingnam
  • 2024-02-27P10156(dp思想)
    难度2也是比较有意思的一道题。首先发现每个小团体独立,所以对于每个小团体分开直接暴力dp,dp[i][j]表示当前小团体做到第i人,走了j人,然后O(n)转移,加上部分分喜提50pts。为什么要O(n)转移呢,因为我要枚举匹配的两个人然后算贡献。但是对于这种带绝对值的贡献,我们一般都要把绝对值拆掉
  • 2024-02-17P9325 [CCC 2023 S2] Symmetric Mountains
    原题链接题解,请看题解区————能不能利用已经算过的值来减少后续计算量呢?如果你toolongonline2:n为一的时候只输出零code#include<bits/stdc++.h>usingnamespacestd;inta[5005]={0};intf[5005][5005]={0};intmain(){intn;cin>>n;for(inti=1
  • 2024-01-29远程调试
    参考:https://zhuanlan.zhihu.com/p/670844851jdk9以上java-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005-jarspring-boot-demo-0.0.1-SNAPSHOT.jarjdk8java-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005-jarspri
  • 2024-01-22至少一半要相等
    概率算法每次随机取两个数,有四分之一的概率两个数都在答案中但我赛后想到并在代码中实现的算法并不是这样的……对了,取模真的、真的非常慢点击查看代码#include<bits/stdc++.h>usingnamespacestd;inth[1000005];inta[5005],c[5005];intread1(){ charcc=getc
  • 2023-12-26P2865 [USACO06NOV] Roadblocks G
    原题链接题解1.在处理最短路的时候,我们采用优先队列的方法,即第一个出现的点一定是最小的,之后出现的点都是在其他点的基础上叠加的值,肯定不小于第一个。那么依然是这个思路,第二个出现的点一定是次短的。代码#include<bits/stdc++.h>usingnamespacestd;structunit{in
  • 2023-12-03idea远程打断点
    某些情况调试必须要在centos环境,本文介绍idea远程断点调试方法。请确保有一台自用服务器,可以按照本文开启远程断点。tomcat配置找到tomcat配置文件./bin/catalina.sh,增加下面一行命令CATALINA_OPTS="-Xdebug-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005"此处使
  • 2023-11-20T4
    #include<bits/stdc++.h>#defineintlonglongusingnamespacestd;intn,m,t,k,d,c,dp[5005][5005],x,y,z,a[5005][5005],s[5005][5005];signedmain(){ scanf("%d%d",&c,&t); for(intp=1;p<=t;p++){ memset(a,0,sizeofa);//
  • 2023-10-01CF1875D Jellyfish and Mex
    思路看到\(n\)的范围只有\(5000\),并且\(\sumn\)的范围也是\(5000\),所以可以考虑\(n^2\)的做法。每次操作肯定都是一次性删完某个数字,如果删除某个数字删一半又去删别的数字,答案肯定会变大。所以我们可以考虑统计所有数字的数量,记为\(num_i\),来计算删完某个数字的最小
  • 2023-09-22bitset 求解高维偏序
    菜,题简单,trick蠢,求别骂。记录今天做题的时候遇到的一个小trick。先看一道题:P3810【模板】三维偏序(陌上花开)。平凡的三维偏序板子,相信大家都会用CDQ/树套树/K-Dtree之类的优秀做法秒了吧!然后看这个题:求五维偏序,\(n\le3\times10^4\),保证每一维这\(n\)个数都是\(n\)