随笔分类 - 题解
摘要:模版题的升级了。 使用二分图经典判定方法(一个点拆成两个点 \(x,x+n\),连边 \((x,y)\) 就是连接 \((x,y+n),(x+n,y)\),那么是否是二分图就等价于判断 \(x,x+n\) 是否都不在一个集合内),预处理出每个操作的 \(e_i\) 下一次出现的位置 \(nx_i\)
阅读全文
摘要:注意力惊人的注意到我们可以将问题转化为所有联通块大小全部为偶数。 假如已经确认了所有加入的边,那么我们可以通过类似 \(K\) 算法的方式求解。 考虑到答案单调不升,所以每条边都有一个影响的区间。考虑线段树分治。 我们倒序枚举,遇到要加入的边,若当前时间为 \(t\),边的加入时间为 \(t'\),
阅读全文
摘要:\(NOIP\) 考前祈福。 实际上,每种伤害 \(d\) 打出的亵渎次数可以转化为: \[1+\max\limits_{i=0}^{\lceil\frac{n}{d}\rceil}(i[\sum\limits_{j=1}^{i}[sum(jd-d+1,jd)>0]=i]) \]其中 \(sum(i
阅读全文
摘要:CF1763C 容易发现当 \(n\ge 4\) 时可以将左右两端变成 \(0\),随后用最大值覆盖全部,问题转化为 \(n=2\) 和 \(n=3\) 时的答案。 当 \(n=2\) 时,要么进行一次操作,要么不操作,\(ans=\max(a_1+a_2,2|a_1-a_2|)\)。 当 \(n=
阅读全文
摘要:好题好题,太棒了这题! 直接想是十分困难的,你连 \(dp\) 状态都想不出合理的,因此考虑二分答案,转化成一个判定问题。下文 \(d\) 表示二分出的答案。 设 \(sum_i\) 表示 \(i\) 子树内的合法路径数,那他就一共分为两部分: 来自于 \(sum_{son}\),直接累加即可。 经
阅读全文
摘要:考虑 \(i\) 排在 \(j\) 前的条件是 \(a_i+\max(a_j,b_i)+b_j\le a_j+\max(a_i,b_j)+b_i\),然后发现这一坨东西是皇后游戏中的倒数第三个式子,直接转化为 \(\min(a_j,b_i)\ge\min(a_i,b_j)\),然后就按皇后游戏中的排
阅读全文
摘要:最小值最大,考虑二分答案,问题转为判断最小值是否能 \(\ge x\)。 假如 \(a_i\ge x\),那我们肯定不管;假如 \(a_i<x\),那最好能让选择的区间 \(r\) 值更大,用优先队列维护即可。区间增幅可以用树状数组维护。 时间复杂度 \(O(n\log^2n)\)。 #includ
阅读全文
摘要:那她既然都说到老国王了,那肯定就是贪心了。 先声明两个引理: 引理1:若 \(\max(c,a)<\max(c,b)\) 时,定有 \(a<b\)。 引理2:\(\max(a,b)-a-b=-\min(a,b)\)。 证明就不说了,非常好证。 考虑 \(i,j\) 两大臣孰先孰后,假如 \(i\)
阅读全文
摘要:好题好题。 难点在建图,因为图的边数将会决定最小生成树的时间复杂度。我们肯定希望能够只建 \(O(n)\) 级别的边,这样时间复杂度就可以做到 \(O(n\log n)\)。 观察到当 \(i,j,k\) 三个区间能够互相连边时(这里假设 \(a_i<a_j<a_k\)),我们绝对不会连 \((i,
阅读全文
摘要:CSP 前学习珂学,祝自己 \(while(1)\ rp++\)。 考虑求解出每种数对答案的贡献。 设 \(t=r-l+1,k_x=\sum\limits_{i=l}^r [a_i=x]\),由容斥得贡献为 \(x(2^t-2^{t-k_x})\)。 求解 \(k_x\),考虑莫队,时间复杂度为 \
阅读全文
摘要:好好好。 我们设当前处理 \(i\) 的答案,那么最后的图就可以分成两个部分:\(1\) 所在的联通块和其他,根据乘法原理,答案就是它们二者方案的乘积。 设 \(f_s\) 表示集合 \(s\) 中所有点联通时图的情况数,\(g_s\) 表示集合 \(s\) 中所有点不一定联通时图的情况数,则有:
阅读全文
摘要:有点水了…… 考虑相邻的不能放在一起,不相邻的可以,那么很容易想到转移方程: \[dp_{i,j}=\sum_{k=0}^{25}dp_{i-1,k}[j,k不相邻] \]其中 \(dp_{i,j}\) 表示填了 \(i\) 位,最后一位填 \(j\)。 那结合数据范围,显然矩阵快速幂。 时间复杂度
阅读全文
摘要:好题好题,难者不会会者不难,我是前者。 实际上加入就可以合法的数是很好计算的。考虑现在所有前缀合法串后的字符实际上都可以满足条件。 容易想到根据是否合法设置状态。设 \(f_{i,j}/g_{i,j}\) 表示现在填第 \(i\) 个数,有 \(j\) 个填了就合法的数,现在的串合法/不合法。 那么
阅读全文
摘要:珂朵莉树+树链剖分+BIT+ST表。
阅读全文
摘要:不知道大家做没做过数列分块基础9题? 插入删除操作可以用链表,线段树等数据结构都不好维护,考虑分块。对于修改操作,暴力重构受影响块的链表,发现除首尾块外,其他块都可以看作是区间左移一位,所以加头删尾即可。 每个块开一个数组(绝对不能是 \((un\_)map\),不然你会和我一样死的很诡异),表示这
阅读全文
摘要:给一篇题解。(下面这张图是从 luogu 上粘贴的,因为不太会画图) 其中纵坐标为 \(t\),横坐标为 \(a_i\)。 发现同颜色块只有平行四边形和直角梯形(等腰直角三角形)两种情况。 可以将直角梯形削去左下角,分成两部分考虑。 等直可以直接暴力插入区间,总个数 \(O(n)\)。 平行四边形可
阅读全文