题意 题解 因为,一直用j=nxt[j]来遍历,可以遍历前i个字符所有相等的前后缀长度,所以有一个暴力的想法,就是对于每一个长度,开始遍历,记录长度小于i/2的相等的前后缀数量,最后累加即可. 但显然超时了. 换一种思路,其实我们要的只是长度小于i/2的相等的前后缀数量. 然后我们可以利用KMP的方法求出一个新的nxt数组,代表前i个数中最大的,且长度不超过i/2的相等的前后缀的长度. 对于每一个长度i,我们在预处理出前i个字符中前缀等于后缀的数量num[i].那么每一个长度对答案的贡献为num…