洛谷 UVA10298 Power Strings(KMP)

 

 

const int N=1e6+5;
 
    int n,m;
    int i,j,k;
    char s[N];
    int f[N];

void getfail(char *s)
{
    f[0]=f[1]=0;
    int len=strlen(s);
    for(int i=1;i<len;i++){
        int j=f[i];
        while(j && s[i]!=s[j]) j=f[j];
        if(s[i]==s[j]) f[i+1]=j+1;
        else f[i+1]=0;
    }
}

int main()
{
    //IOS;
    while(~ss(s+1)){
        if(s[1]=='.') break;
        getfail(s+1);
        int len=strlen(s+1);
        int ans=len-f[len];
        if(len%ans==0) pd(len/ans);
        else puts("1");
    }
    //PAUSE;
    return 0;
}

 

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 酷酷鲨 设计师:CSDN官方博客 返回首页