2026.08 蠕动记录
2026.08.04
ARC201B:对每个 i 加入无限个 (i,0) 之后,问题可转化为物品重量和等于 W。考虑 \((0,y_i)\) 的影响,注意到当 W 为偶数时这样的物品会选偶数个,可以两两合并为 \((1,y_i+y_j)\),W 是奇数时选最大后同理。
ARC201C:考虑建 trie,原题即为当 trie 上一个点的两个儿子都被点亮时它也被点亮,求根被点亮的方案数。dp 一下就行。
ARC200B:令 \(a_1<a_2\),则 \(a_3\) 有解需要 \(a_3\ge a_2\) 和 \(a_3\le a_1+a_2\)。当 \(a_3<a_1+a_2\) 考虑 \(x_1=10^{a_1-1},x_2=10^{a_2}-10^{-a_3+a_1+a_2-1}\);否则令 \(x_1=8\times 10^{a_1-1},x_2=8\times 10^{a_2-1}-1\) 即可。
ARC209B:最后一步有点精妙了。记 i 出现次数为 \(c_i\),众数为 t,分讨一下:\(c_t\le n-c_t+1\) 时,考虑相邻两两不同,答案为 0 显然最小;否则转化为给 \(c_t\) 分段,注意到长为 len 的段的偶数长回文子串数 \(f(len)=\lceil\frac{len}{2}\rceil\lfloor\frac{len}{2}\rfloor\),考虑平均分。但你发现这样不对,为什么?因为有两个偶数段时可以一加一减变成两个奇数段使答案更优,然后做完了。注意可能存在的唯一一个偶数段应放在最前/最后以保证不会增大答案。
2026.08.05
ARC200A:大胆猜测参与构造的 x 不会很多,考虑给 \(x_i,x_j\) 赋值,其余 x 全为 0。记 \(\sum a_ix_i=A,\sum b_ix_i=B\),令 \(c_i=\frac{a_i}{b_i}\),不妨设 \(c_i>c_j\),发现取 \((b_j,-b_i)\) 可以让 A 满足条件,B 为 0;取 \((a_j,-a_i)\) 可以让 B 满足条件,A 为 0。所以两个加起来即可。当所有 \(c_i\) 均相等时显然 A,B 同号无解,故 \(c_i\) 不全相等为有解充要条件。
ARC210C:从低到高看,把答案写成 10X+Y 形式,则最低位硬币应优先 10 个一组 cosplay 更高级的硬币去使得 X 尽可能大,剩下的再在这一位分配就行。
ARC221A:考虑辗转相除把 C 消掉,剩下的形式可以莫反。细节明天再想。
2026.08.06
CF2241G:非常牛啊。首先考虑这个操作的本质是前面的数的线性组合,所以等价于 \(a_i\) 可以加减任意倍 \(\gcd(a_1,a_2\dots a_{i-1})\)。然后是最神秘的一步:注意到只有第一个满足 \(\gcd(a_1,a_2\dots a_{i})\neq a_1\) 的位置 i 是有用的。即 i 之后的数产生的极差不大于前 i 个数产生的极差。
为什么?首先前 i 个数的极差为 \(x=\min(a_1-a_i\bmod a_1,a_i\bmod a_1)\),而后面的数改变的幅度 \(g'\le \gcd(a_1,a_i)\),可以把 gcd 写成更损相减来证明 \(\gcd(a_1,a_i)\le x\),于是做完了。2log 足以通过本题。
2026.08.07
ARC217B:观察猜测每次把满足条件且最小的 \(p_i\) 放到开头最优,打表发现 \(f(P)=\sum_{i 不为前缀最大值}2^{p_i-1}\)。对 \(t>\max_{i=1}^k a_i\),注意到它不产生贡献当且仅当它在 [t,n] 内的数中相对顺序在第一位,故方案数为 \((n-k)!\frac{n-t}{n-t+1}\)。唉唉,组合意义太强大。
ARC188B:糖丸了。这种题应该想到打表观察的。结论看题解吧。
ARC216A:草泥马又是 ad-hoc。
首先是两端必须对应相同。考虑对 a 取邻位差分,即 \(b_i=a_{i-1}\oplus a_i\),则原题等价于 \(b_i=b_{i+1}\) 时可以让两者全部取反。考虑经典(?)trick 之奇数位取反,即 \(c_i=b_i\oplus (i\bmod 2)\),则原题变为可以随便移动 1 求最小步数。
2026.08.10
CF2255B:发现把原序列分成若干极长 01 段之后,这个操作本质上是能改变段长但没法改变相对位置关系,组合数一乘就算完了。
2026.08.12
CF2237F:令 \(f_{i,j}\) 表示前 i 个最后为 j 的最大保留数,难点在于处理形如 \(f_{i+1,j+1}\gets f_{i,j}\) 的转移,注意到如果令 \(g_{i-j}=f_{i,j}\) 则可以完成原地转移。用区间 chmax 的线段树维护即可做到 \(n\log n\)。
P4755:当年怎么这么强。考虑分治,设区间 [l,r] 的 max 在 p,考虑过 p 的答案怎么统计。考虑启发式分裂,即在 [l,p][p,r] 中小的一边里枚举端点,另一边用 DS 查询,复杂度 \(n\log^2 n\),证明略。
CF2211F:可以先求出二分到每个点的次数 \(d_i\),则答案可写成 \(\sum_{l,r}(\min_{i\in [l,r]}d_i)\),其中 [l,r] 是一种颜色的极长段。当一个区间 [l,r] 内最小值为 p 点时,枚举 p 点的颜色 i,则方案数为 \(\binom{(p-l)+(i-1)-1}{(i-1)-1}\binom{(r-p)+(m-i)-1}{(m-i)-1}\),特殊处理 i=1/m,剩下的由范德蒙德卷积可知等于 \(\binom{(r-l)+(m-1)-2}{(m-1)-2}\),启发式分裂即可做到 \(O(n\log n)\),也可以单调栈精细实现做到 \(O(n)\)。代码不是很想写。
CF2206E:变成 0-index 后,不妨以前 m 个变量为标准把每个变量表示成 \(x_j=x_{j\bmod m}+t_j\) 的形式,无下限当且仅当区间长度不足 m,否则我们只需要考虑区间中 m 种变量各自最大的 t,然后可以表示答案。题解似乎是分块做的,但是离线的话应该也可以 log。
CF2200H:做法有点牛。考虑 x 合法当且仅当 \(x\bmod 42\) 是 6 的倍数,或 x/42 合法。枚举 ans 模 42 的余数,对第二种情况递归下去处理。注意到:所有种答案余数需要递归处理的元素个数之和为 \(O(n)\) 个,故复杂度 \(O(42n\log_{42}V)\)。

浙公网安备 33010602011771号