题意
求给定字符串的最小正周期
最小正周期=字符串长度-最长border的长度
所以只要求最长border的长度就行了
KMP的next数组就是干这个的
#include <cstdio>
#include <algorithm>
#include <iostream>
#define N 1000010
using namespace std;
int n,next[N];
char A[N];
int main(){
scanf("%d%s",&n,A+1);
int k=0;
for(int i=2;i<=n;i++){
while(k&&A[k+1]!=A[i]) k=next[k];
if(A[k+1]==A[i]) k++;
next[i]=k;
}
return printf("%d\n",n-next[n]);
}