hdu 3746 Cyclic Nacklace(KMP)

来源:互联网 发布:进驻淘宝商城的条件 编辑:程序博客网 时间:2024/05/20 18:44

机房马上关门了,代码贴上,收拾东西走人。

#include<stdio.h>#include<string.h>#define N 100005char s[N];int next[N];void setNext(char *s){    int i,j,ln;    ln=strlen(s);    i=0;    j=-1;    next[i]=j;    while(i<ln)    {        if(j==-1||s[i]==s[j])        {            i++;            j++;            next[i]=j;        }        else            j=next[j];    }    return ;}int main(){    int T;    scanf("%d",&T);    getchar();    while(T--)    {        gets(s);        setNext(s);        int min,ln;        ln=strlen(s);        min=ln-next[ln];        if(ln%min==0&&ln>min)            printf("0\n");        else            printf("%d\n",min-next[ln]%min);    }    return 0;}