[BalticOI 2009] Radio Transmission 无线传输
题目来自洛谷网站:
KMP思路:
结论:n - ne[n]
模拟样例,如下图所示:
代码:
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N = 1e6+20;
int n;
char s[N];
int ne[N];
signed main(){
cin >> n;
cin >> (s+1);
ne[1] = 0;
for(int i = 2, j = 0; i <= n; i++){
while(j && s[i] != s[j+1]) j = ne[j];
if(s[i] == s[j+1]) j++;
ne[i] = j;
}
cout << n-ne[n] << endl;
return 0;
}