POJ 2406 Power Strings(KMP找周期)
2015-02-21 21:38
357 查看
大概意思是给定字符串是多少个周期组成.....
前面的题目已经知道最小周期就是t=m-next[m]...然后直接长度m除以t就得到结果了...
然后迅速搞定 提交WA....原来是忘记了那种情况,就HDU 3746那个题目...比如abbab...这样的就错了,所以要m%t==0的就是m/t,其他的都是1
前面的题目已经知道最小周期就是t=m-next[m]...然后直接长度m除以t就得到结果了...
然后迅速搞定 提交WA....原来是忘记了那种情况,就HDU 3746那个题目...比如abbab...这样的就错了,所以要m%t==0的就是m/t,其他的都是1
#include<iostream> #include<algorithm> #include<cstdio> #include<cstring> #include<cmath> #include<cstdlib> using namespace std; char a[1002000]; int pre[1000020];//前缀数组,pre[i]代表b数组中从第i个元素开始有pre[i]个元素和开头相等 int m; void getpre() { int i=0,j=-1; pre[0]=-1; while(i<m) { if(j==-1||a[i]==a[j]) pre[++i]=++j; else j=pre[j]; } } int main() { while(scanf("%s",a),a[0]!='.') { m=strlen(a); getpre(); int t=m-pre[m]; if(m%t==0) printf("%d\n",m/t); else printf("1\n"); } return 0; }
相关文章推荐
- POJ 2406 Power Strings (kmp求周期)
- poj_2406 Power Strings(KMP求周期子串)
- [KMP求最小周期]POJ 2406 Power Strings
- poj 2406 Power Strings(kmp next数组的应用)
- POJ 2406 Power Strings(KMP求最小循环节)
- poj2406 Power Strings(KMP)
- 【kmp+最小循环节】poj 2406 Power Strings
- Power Strings POJ 2406【KMP Next的应用】
- poj 2406 Power Strings kmp基础
- poj2406 Power Strings(kmp求循环节)
- poj2406--Power Strings(kmp:求循环串的次数)
- POJ2406 Power Strings 解题报告【字符串】【KMP】
- POJ 2406 Power Strings (KMP找字符串的循环节)
- [POJ - 2406] Power Strings(KMP)
- POJ 2406 Power Strings——kmp求最短循环子串
- POJ-2406 Power Strings(KMP求重复子串出现的最大次数)
- POJ 2406 Power Strings kmp求循环结
- POJ2406_Power Strings_KMP_求最短重复子序列
- POJ 2406 Power Strings 【后缀数组||KMP】
- poj-2406-Power Strings-kmp