水题~~!
题目链接:bzoj 3670
题意:写 B z o j 的题意就是简单——题意见上……
题解:在跑 KMP 的时候直接加一个限制:“(j+1)必须 ≤ i/2 ”就可以了。这为什么是对的呢?因为如果(j+1)比 i/2 大的话,(j+2)也一定比 (i+1)/2 大,所以 j 停留在这个位置没有意义,那么直接让 j=Next[j] 就好了。另外因为要求出所有满足要求的串的数量,所以我们还要维护一个数组表示以 i 为结尾的前缀有多少个前缀等于后缀就可以求出答案了。
我思故我在:水题。