题目链接 思路: next数组,ne[i] = j,表示s[1, j] 和 s[i-j+1,i] 相等,即从i结尾长度为j的后缀和从1开始长度为j的前缀相等 (s字符串从1开始存储) ans初始化为n,如果发现ne[i]>0,则ans++,再进行回溯,直到ne[i]==0 代码 #include<bits/stdc++.h> using namespace std; const int N = 2e5+9; char s[N]; int ne[N]; typedef long long ll; const int mod = 10007; int main() { int ...