poj 2406

发布时间:2017-2-28 15:49:35 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"poj 2406",主要涉及到poj 2406方面的内容,对于poj 2406感兴趣的同学可以参考一下。

原来KMP中有好多知识点啊!这题就是求周期! 有一个公式: 如果 len%(len-next[len])==0的话,那么周期==len/(len-next[len]) 否则就是输出 1 代码如下: #include <iostream> #include <cstdio> #include <cstring> using namespace std; const int maxn=10000010;//这里注意不要开太大了,! int next1[maxn]; char s[maxn]; void getnext(char s[],int len) { int j=0,k=-1; next1[0]=-1; while(j<len) { if(s[j]==s[k]||k==-1) { next1[++j]=++k; } else k=next1[k]; } } int main() { int t; int i; int len; while(scanf("%s",s)&&s[0]!='.') { len=strlen(s); getnext(s,len); if(len%(len-next1[len])==0) { printf("%d\n",len/(len-next1[len])); } else printf("1\n"); } return 0; }

上一篇:mysql配置半同步的复制
下一篇:ORA-03113

相关文章

关键词: poj 2406

相关评论

本站评论功能暂时取消,后续此功能例行通知。

一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!

二、互相尊重,对自己的言论和行为负责。