思路:
我们知道 next[i]是失配的i下一步要去哪儿 next[n]就是失配的n要去哪儿 n-next[n]就是答案(即最短周期)啦//By SiriusRen#includeusing namespace std;int n,next[1000050],j;char a[1000050];int main(){ scanf("%d%s",&n,a+1); for(int i=2;i<=n;i++){ while(j&&a[i]!=a[j+1])j=next[j]; if(a[i]==a[j+1])j++; next[i]=j; } printf("%d\n",n-next[n]);}