无线传输

题面

标准kmp

 1 #include<cstdio>
 2 using namespace std;
 3 const int maxn=1111111;
 4 int n,kmp[maxn];
 5 char ss[maxn];
 6 int main()
 7 {
 8     scanf("%d%s",&n,ss+1);
 9     int j=0;
10     for(int i=2;i<=n;++i)
11     {
12         if(j&&ss[i]!=ss[j+1]) j=kmp[j];
13         if(ss[i]==ss[j+1]) ++j;
14         kmp[i]=j;
15     }
16     printf("%d",n-kmp[n]);
17     return 0;
18 }

 

posted @ 2019-07-05 11:08  [jackeylove]  阅读(166)  评论(0编辑  收藏  举报