首页 > 其他分享 >Power Strings

Power Strings

时间:2023-01-12 20:44:52浏览次数:50  
标签:Power int 代码 ne char Strings

Power Strings

题意

求最大的循环节

代码

如果是循环的,也就是S=TTTTT
那么ne[i]=TTTT,所以也就是前面的那一段长度。
如果不相同,也就是abc,那么%的话,一定时为0的,妙

代码

#include <bits/stdc++.h>
using namespace std;
const  int M=1e6+5;

int ne[M];
char s[M];

void init(char *s) {
    int len=strlen(s+1);
    for(int i=2,j=0;i<=len;i++) {
        while(j&&s[i]!=s[j+1])j=ne[i];
        if(s[i]==s[j+1])j++;
        ne[i]=j;
    }
}

int main() {
    while(scanf("%s",s+1)!=-1) {
        init(s);
        int len=strlen(s+1);
        if(len%(len-ne[len])==0)cout<<len/(len-ne[len])<<'\n';
        else cout<<"1\n";
    }
    return 0;
}
//但是循环节是不能重叠的

标签:Power,int,代码,ne,char,Strings
From: https://www.cnblogs.com/basicecho/p/17047877.html

相关文章