我这么弱 只能通过刷水体来增加AC数目啦
#include#include char a[1000000+10];int to[1000000+10];int n;int main(){ scanf("%d",&n);getchar(); gets(a+1); for(int i=2,j=0;i<=n;i++) { while(j>0&&a[j+1]!=a[i]) j=to[j]; if(a[j+1]==a[i]) j++; to[i]=j; } printf("%d\n",n-to[n]); return 0;}