HUD 1358 Period
来源:互联网 发布:邓亚萍20个亿 知乎 编辑:程序博客网 时间:2024/06/05 19:55
1358考查:kmp算法中next数组的理解,求出next数组后.关键点:1.j=i-next[i],i%j==0则说明存在. 2.i/j,就是重复次数j=i-next[i]就是看i和next[i]之间有多少个字母,如果i%j==0,则说明i之前有一个周期性的长度为i-j的子串。
例子: str a b a b a b a bnext -1 0 0 1 2 3 4 5 i 0 1 2 3 4 5 6 7
#include<iostream>using namespace std;char str[1000000 + 10];int next[1000000 + 10];void getNext(char str[],int len) { int i=0,j=-1; next[0]=-1; while(i<len) { if((j==-1)||(str[i]==str[j])) { j++; i++; next[i]=j; } else j=next[j]; } }void kmp(){for(int i = 2; str[i-1]; i++){int j = i - next[i];if(i%j==0 && i/j>1) printf("%d %d\n", i, i/j);}}int main(){ int m;int T = 1;while(scanf("%d", &m), m){ scanf("%s",str);printf("Test case #%d\n", T++);getNext(str, m);kmp();printf("\n");}return 0;}
- HUD 1358 Period
- 1358 Period
- POJ 1961 Period || HDU 1358 Period || ZOJ 2177 Period
- HUD
- HDU 1358 Period (KMP)
- HDU 1358 Period
- hdu 1358 Period
- hdu 1358 Period
- Period 1358 KMP
- hdu 1358 Period
- HDU 1358 Period KMP
- hdu 1358 Period
- HDOJ 1358 Period
- hdu 1358 Period KMP
- hdu 1358 Period(KMP)
- HDU 1358 Period KMP
- hdu 1358 Period
- hdu 1358 Period
- hadoop1.01+ hbase 0.92+chukwa0.5 安装配置 +问题
- 关于QA的职责
- BBS的一种数据库表设计(转)
- netbeans安装后,乱码问题的解决
- 【ZJOI2008】【树形动态规划】骑士
- HUD 1358 Period
- WIN7下配置JDK并运行JAVA的过程
- HDU 1495 非常可乐(广搜)
- 项目2.
- 收集的一些句子
- C# 获取当前路径方法
- hibernate中的po类为什么要重写equals和hashcode方法的对话
- hadoop专题网址
- 设计模式六大原则(3):依赖倒置原则