洛谷 P4173 残缺的字符串 卡常小记

首先,使用匹配函数 \(P(x_i, x_j) = x_ix_j - x_i^2[j \neq 0]\)

容易发现,当存在 \(i \neq j\) 时,\(x_ix_j\) 的系数只会增加,因此根据 Schwartz-Zippel 引理,随机一组 \(x_{1 \sim 26}\) 对应 a~z 即可。

然后,对于 NTT 的过程,有两个卡常的点:

一是点积 reverse 后转卷积的过程是舍弃低位的,故利用循环卷积的特性可以将 NTT 长度减半。

二是 NTT 是线性的,NTT 的结果可以累加后再进行一次 INTT

这样就能以 max = 70ms 过掉本题 \(3 \times 10 ^ 5\) 的数据(

posted @ 2024-03-13 23:32  JerryTcl  阅读(159)  评论(0)    收藏  举报