POJ-2406 Power Strings
来源:互联网 发布:cms监控软件 编辑:程序博客网 时间:2024/04/30 17:17
题目链接:
http://poj.org/problem?id=2406
题目大意:
求该字符串的最多重复次数
解题思路:
总长度/最小循环节
代码如下:
#include <math.h>#include <stdio.h>#include <string.h>#include <stdlib.h>#include <iostream>#include <algorithm>using namespace std;int ans;int srcLen;char src[1000000 + 8];int kmpNext[1000000 + 8];void init();void kmp_per();void KMP();int main(){memset(src, 0, sizeof(src));while (scanf("%s", &src) != EOF&&src[0] != '.'){init();KMP();printf("%d\n", ans);}return 0;}void init(){ans = -1;srcLen = strlen(src);memset(kmpNext, 0, sizeof(kmpNext));}void kmp_per(){int i = 0;int j = -1;kmpNext[0] = -1;while (i < srcLen){while (-1 != j&&src[i + 1] != src[j + 1]){j = kmpNext[j];}if (src[i + 1] == src[j + 1]){j++;}i++;kmpNext[i] = j;}}void KMP(){kmp_per();ans = 0;printf("%d %d\n", srcLen, (srcLen - kmpNext[srcLen - 1] - 1));if (srcLen % (srcLen - kmpNext[srcLen - 1] - 1)){ans = 1;}else{ans = srcLen / (srcLen - kmpNext[srcLen - 1] - 1);}}
0 0
- poj 2406 "Power Strings"
- poj 2406 Power Strings
- POJ-2406 Power Strings
- POJ 2406 Power Strings
- poj 2406 Power Strings
- POJ:2406 Power Strings
- poj 2406 Power Strings
- poj 2406 Power Strings
- poj 2406 Power Strings
- POJ 2406 Power Strings
- POJ 2406 - Power Strings
- poj 2406 Power Strings
- poj 2406 Power Strings
- POJ 2406 Power Strings
- POJ 2406 Power Strings
- POJ 2406 Power Strings
- poj 2406 Power Strings
- POJ 2406 Power Strings
- 整数类型_进制转换
- 阿里笔试第三题
- linux根目录下各个子目录的作用(精简版)
- js学习设计模式--命令模式
- Android Small插件化框架解读——Activity注册和生命周期[阿里工程师分享]
- POJ-2406 Power Strings
- 线程同步
- 练习二 1004 射箭问题
- 第四天
- BZOJ4540 HNOI2016 序列
- zoj3822(概率dp)
- ACM:数论专题(3)——约瑟夫问题
- swust oj 0963 背包问题
- Oculus Rift SDK 安装