救,这个码会奇怪的RE
记录
#include<bits/stdc++.h>
using namespace std;
const int N=2e7+10;
int n,nxt[N];
string s;
int main(){
cin>>n;for(int i=1;i<=n;i++) cin>>s[i];
for(int i=2,j=0;i<=n;i++){
while(j&&s[j+1]!=s[i]) j=nxt[j];
if(s[j+1]==s[i]) j++;
nxt[i]=j;
}
long long ans=0;
for(int i=1;i<=n;i++){
int j=i;
while(nxt[j]) j=nxt[j];
if(nxt[i]) nxt[i]=j;
ans+=i-j;
}
cout<<ans;
}