7.30 day7字符串

发布时间 2023-07-30 14:50:44作者: Linnyx

60+10+100+0=170

连续2天没写出来简单题了,不过我的字符串是真的弱,趁着这次复习一下

T1

倒序考虑即可

T2

之前模拟赛里有,但是只记得做过不记得做法了

定义一个字符串的本质是\(A_x=x-pre(A_x)\)

\(pre(x)\)指上一次出现\(x\)的位置,如果是第一个字符则是0

两个字符串相等的条件是本质相同,kmp搞一下就可以了

T3

区间转化为前缀(经典转化

要想被开k次方,只需要区间所有质因数个数都可以被k整除,所以我们可以对每个质因数个数%k,分解每个数加入目前前缀和哈希塞桶里统计答案即可

注意到答案状态很多,如果模998244353 or 1e9+7很可能会冲突,自然溢出即可

T4

很巧妙,将两两lcp的贡献每个字符串各分一半,如果共同在某一边则是完整的,如果各属一方则抵消了

两两lcp可以用trie求