lsc72 @ 2024-07-30 20:21:10
#include<bits/stdc++.h>
using namespace std;
long long k,nest[2000010];
int main(){
ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
cin>>k;
string s;
cin>>s;
nest[1]=0;
for (int i=2;i<=s.size();i++){
int p=i-1;
while (p&&s[i-1]!=s[i-1-p]) p=nest[p];
nest[i]=p;
}
long long ans=0;
for (int i=1;i<=s.size();i++) ans+=nest[i];
cout<<ans;
return 0;
}
这边判断p>=i/2,加不加结果都一样。 提交记录https://www.luogu.com.cn/record/169552613
by lsc72 @ 2024-07-30 20:59:39
此帖已结,该代码无法考虑如 6 361331的情况