hdu 3746 Cyclic Nacklace
#include <stdio.h>
#include <string.h>
char b[100020];
int p[100020];
int main()
{
int i,j,y;
int cas;
scanf("%ld",&cas);
while(cas--)
{
scanf("%s",b+1);
y=strlen(b+1);
j=0;
p[1]=0;
for(i=2;i<=y;i++)
{
while(j>0&&b[i]!=b[j+1]) j=p[j];
if(b[i]==b[j+1])
j++;
p[i]=j;
}
int len=y-p[y];
if(len!=y&&y%len==0) printf("0\n");
else printf("%d\n",len-y%len);
}
return 0;
}

浙公网安备 33010602011771号