9.9 ~ 9.15 总结
正在完成对做过略有难度的题目写题解的计划。
这是四次联考的题解(当然还是和前面所有联考在一起的老链接)。
做题包括以下几道:
AGC032F,这是对 P6130 结论的拓展运用。
P11023 一道新的 CO/CETS 题目。选的点一定在原凸包上,然后分上下凸壳考虑;接下来的 dp 满足四边形不等式,可以决策单调性优化。
ARC118D 小小数论题。
上周和 max0810 和 hanghang 进行了不少次 duel(决斗),因此有不少 CF 题目。
CF1326F2 先容斥掉“不能经过”的限制(最后高位前缀和回去)。然后使用划分数复杂度枚举每个 \(0\) 之间的 \(1\) 个数的集合。这相当于选若干条不交路径:注意到不交的限制相当于路径长度和为 \(n\),类子集卷积 FWT 即可。
CF1845E(duel 题) P10547的变小便矮版。设 \(1\) 的位置数组为 \(a,b\)。则最小代价为 \(\sum |a_i-b_i|\)。之后使用和 P10547 和某 ABC 题目类似的 dp 方法即可,也会产生一个 \(O(n^2\sqrt n)\) 的复杂度。
CF1556F(duel 题)类似 DAG 容斥。设 \(f(S)\) 为赢了 \(S\) 集合的人的概率,然后容斥考虑这个集合的子集为真正能赢的人即可。
CF1227F2(duel 题)比较搞笑的题。
CF407C(max 和 hanghang duel 的题)胡的和题解不同的做法。把所有数排成一行 \((i,100)\),一个操作忽略 \(r\) 就相当于在 \((l,100-k)\) 权值加一,之后递推算答案。对于 \(r\) 的限制是容易处理的。每加入一个点,在 \(r+1\) 那里把每个点减去第一次被经过的贡献即可。
CF1580B 按照最大值分开 dp 即可。数据范围纯奇异搞笑。
CF382E(duel 题)直接 dp 即可。
CF573D 根据排序不等式,尽量取排序后的对应位即可。有两个结论:每个数只会取 \([i-2,i+2]\) 的马,因为存在一种调整方式使得 \(i,j\) 交换马之后贡献偏序原方案。第二个结论是极长没有匹配跨越的段长 \(\le 3\),证明有点长。之后动态 dp 即可。
CF1835C 抽屉原理题。首先无交的限制是骗人的;先找到使前 \(k\) 位相等的对,在这些对中找到后 \(k\) 位异或和相等的对。根据抽屉原理这样的对总存在。然而根据生日悖论,好像也可以随机,,,
CF1835D 先缩强连通分量。(甚至可以假设边带权)然后根据裴蜀定理和 \(k\ge n^3\),只需找到所有环长的 \(\gcd=d\)。
结论:\(p\mid d\iff \exists \lang dis_i\rang,\text{s.t. } \forall (u,v,w)\in E,dis_v-dis_u\equiv w\pmod p\)。
这个证明也给出了构造:\(dis\) 即为 dfs 树深度。此时,只需求 \(\gcd |dis_v-dis_u-w|\)。
然后,\(u,v\) 合法当且仅当 \(dis_u-dis_v\equiv dis_v-dis_u\equiv k\pmod d\)。这就好做了。
CF1787F(duel 题)需最小化即置换环个数。根据题目操作,每过一天,奇数长度置换环会以某种方式(可快速计算)改变,偶长度则会被以某种方式拆分。因此,偶数长度个数需整除 \(2^k\);奇数长度尽量合并。当时我还考虑了 \(a=b\times 2^k\) 的分解,但是梅勇。
看起来 2500 是可以稳定地快速解决了。