提交时间:2022-02-25 20:57:13

运行 ID: 45928

#include <bits/stdc++.h> using namespace std; int n,nxt[1000005]; char s[1000005]; void KMP(int m,char *t) { nxt[1]=0; for(int i=2,j=0; i<=m; i++) { while(j>0 && t[i]!=t[j+1])j=nxt[j]; if(t[i]==t[j+1])j++; nxt[i]=j; } } int main() { scanf("%d%s",&n,s+1); KMP(n,s); cout<<n-nxt[n]<<'\n'; return 0; }