POJ2406 Power Strings
来源:互联网 发布:网络的利与弊议论文400 编辑:程序博客网 时间:2024/06/06 17:13
一. 原题链接:http://poj.org/problem?id=2406
二. 题目大意:给一个字符串,求出它由几个最小周期组成。比如说aaaa,由4个a组成。ababab,3个ab组成。
三. 解题思路:KMP Next数组中保存的是从0开始每一位的最大前后缀,意味着,下标从0开始,len-Next[len-1] 到len-1 与 0到Next[len-1]是一样的。而且len-Next[len-1] 到len-1 肯定是最小前后缀,如果总长度len是它的倍数,那么它就是最小周期。
四. 代码:
#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>using namespace std;const int MAX_N = 1010000, INF = 0x3f3f3f3f;int Next[MAX_N];char pattern[MAX_N];void getNext(){ int i, k; Next[0] = 0; for(i = 1; pattern[i]; i++){ k = Next[i-1]; while(pattern[i] != pattern[k] && k>0) k = Next[k-1]; if(pattern[i] == pattern[k]) Next[i] = k+1; else Next[i] = 0; }}int main(){ //freopen("in.txt", "r", stdin); while(~scanf("%s", pattern) && pattern[0] != '.'){ getNext(); int res = 1, len = strlen(pattern); if(len % (len - Next[len-1]) == 0) res = len/(len-Next[len-1]); printf("%d\n", res); } return 0;}
0 0
- POJ2406 Power Strings
- poj2406 Power Strings
- poj2406--Power Strings
- 【KMP】 poj2406 Power Strings
- poj2406 Power Strings
- poj2406 Power Strings-------KMP
- POJ2406:Power Strings
- poj2406 Power Strings
- poj2406-Power Strings
- [POJ2406] Power Strings[KMP]
- poj2406 Power Strings kmp
- poj2406 Power Strings
- poj2406 Power Strings
- POJ2406 Power Strings 【KMP】
- poj2406 Power Strings (KMP)
- poj2406 Power Strings
- poj2406-Power Strings(kmp)
- poj2406 Power Strings(KMP)
- Nginx与Tomcat结合,亲测可行
- 粒子动画
- API 的私用和公开
- Android SlidingMenu 开源项目实现侧拉菜单(一)
- java程序员必知的8大排序
- POJ2406 Power Strings
- Java泛型详解
- nyoj 1279 (河南省第九届ACM比赛 D 题)
- 一个PHP的SQL注入完整过程
- awk用法
- 第五十六篇:win10+VS2015安装问题解决
- java 权限管理与用户角色权限设计
- PDO模式
- PrefixSpan序列模式挖掘算法