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]=vminj{f[v,j]+[j0ji]}

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

E. Power and Modulo

题意是 =modM 而不是 (modM)

a[1]1 的情况平凡,先判掉

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

L. Karshilov's Matching Problem

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

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

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

分块

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

调小块长可以减小常数

加强到区间修改:根号重构,空间再付出 n 代价

栈+倍增

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

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

posted @   ft61  阅读(75)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示