2021 CCPC 哈尔滨

gym


开场 zsy 签了 J,gjk 签了 B,我读错了 E 的题意,gjk 读对后过了
zsy 读了 K 给我,我记得是模拟赛原题,跟欧拉定理有关,但很难。他俩过了 D I,我大概会了 G 但不会 DP 期望,跟 zsy 无效交流了一会凭感觉写 1A 了。C 好像也是模拟赛原题就丢给他俩了
L zsy 给了不带修的 ACAM 做法并指出相同颜色段可以倍增,我说根号重构一下就能根号 \(\log\) 带修了。吃饭的时候会了单根号,回来他俩过了 H,最后 L 没调出来。以后一定一定要拍,即使只剩 15min

从排名看打得还不错(除了 L),下周就正式赛了,还是比较振奋人心的


C. Colorful Tree

显然每个子树最多被染色一次,且染色顺序是从根到叶子。设 \(f[u,i]\) 表示只考虑子树 \(u\),预先被染成颜色 \(i\) 的答案(\(i=0\) 表示没有被染色)

转移:\(f[u,i]=\sum_{v}\min_{j}\{f[v,j]+[j\ne0\wedge j\ne i]\}\)

key observation:\(f[u,i]\le f[u,0]\)。如果子树 \(u\) 中没有颜色 \(i\),那么 \(f[u,i]=f[u,0]\)

E. Power and Modulo

题意是 \(=\bmod M\) 而不是 \(\equiv\pmod M\)

\(a[1]\ne1\) 的情况平凡,先判掉

\(M\) 一定是 \(2a[i]-a[i+1]\) 的约数,事实上只有不为 \(0\)\(2a[i]-a[i+1]\) 都相等的值才可能是答案。否则就会出现 \(M\le a[i]\)

L. Karshilov's Matching Problem

没注意意义不明的 \(\bmod\) WA 了一发
有相同的串,Trie 插入时权值要 += 而不是 =

暴力:对 \(t\) 建 ACAM,用 \(s[1,l]\) 在上面跑顺便统计信息(“信息”指 ACAM 上所处结点和答案)

核心思想:只有前缀询问,考虑维护若干个关键前缀的信息,剩余部分暴力

分块

关键前缀为每个块的右端点,预处理 ACAM 上每个结点走指定字符块长次的信息

调小块长可以减小常数

加强到区间修改:根号重构,空间再付出 \(\sqrt{n}\) 代价

栈+倍增

修改只有后缀覆盖:相同字符段压成一个点,栈维护。关键前缀为每个字符段的右端点

询问时先在栈上二分,找到 \(l\) 之前的第一个关键前缀,剩下的部分与 \(l\) 处于同一字符段,倍增

posted @ 2023-10-30 22:54  ft61  阅读(57)  评论(0编辑  收藏  举报