洛谷 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\) 的数据(

浙公网安备 33010602011771号