poj2406 KMP
2015-08-08 21:53
399 查看
kmp简单题 找循环节。由于KMP的next[]数组,所以可以考虑最后一组的情况,及next
的值;n-next
的值表示一个循环节。
如果n%(n-next
)!=0表明该循环不成立。不然就是直接得到。
的值;n-next
的值表示一个循环节。
如果n%(n-next
)!=0表明该循环不成立。不然就是直接得到。
#include<stdio.h> #include<string.h> #define maxn 1000010 int next[maxn]; char s[maxn]; void getnext() { int j,k,len=strlen(s); j=0; k=-1; next[0]=-1; while(j<len) { if(k==-1||s[j]==s[k]) { j++; k++; next[j]=k; } else { k=next[k]; } } } void getans() { int ans,flen; int n=strlen(s); flen=n-next ; if(n%flen==0) printf("%d\n",n/flen); else printf("1\n"); } int main() { while(scanf("%s",s)!=EOF) { if(s[0]=='.')break; getnext(); getans(); } }
相关文章推荐
- 开始了他的高速功率矩阵
- 面试的算法1(C语言)(整理)(组合数 字符串倒置 最大公共串)
- Quorum/NRW机制
- 聚集索引和非聚集索引的区别
- Python学习笔记一
- 2015 Multi-University Training Contest 6
- poj - 3254 Corn Fields (状态压缩dp入门)
- 条款16:成对使用new和delete时,采取相同的形式
- Codeforces Gym 100286J Javanese Cryptoanalysis 傻逼暴力
- 杭电OJ 1002 大数相加
- 代理模式
- Hive客户端多并发问题解决方法记录
- HDOJ 5353 Average 模拟
- [POJ 2444] Partition a Matrix 暴力
- selection sort(选择排序)
- 当 MUST_CHANGE 为 ON (开)时,不能将 CHECK_POLICY 和 CHECK_EXPIRATION 选项设为 OFF (关)
- Android--编程方法之外的常识
- Android中的ViewPager和 PagerAdapter的初步理解和使用
- Installing Tomcat 8 on OS X 10.10 Yosemite
- fwrite()函数和fread()函数