POJ - 2406 Power Strings(KMP 循环节)
2015-10-26 22:47
351 查看
题目大意:问一个字符串由多少个循环节构成
解题思路:循环节和next的关系
解题思路:循环节和next的关系
#include <cstdio> #include <cstring> const int N = 1000010; char str ; int len; int next ; void getFail() { len = strlen(str); int i = 0, j = -1; next[0] = -1; while (i < len) { if (j == -1 || str[i] == str[j]) { i++; j++; next[i] = j; } else j = next[j]; } } int main() { while (scanf("%s", str) && str[0] != '.') { getFail(); if (len % (len - next[len]) == 0) printf("%d\n", len / (len - next[len])); else printf("1\n"); } return 0; }
相关文章推荐
- OpenStack、Kubernetes和Mesos,谁将掌控未来?
- maven配置环境
- maven配置环境
- UVA31727个六边形填数a
- Ubuntu启动碰到waitting for network configuration 或者 up to 60s的问题
- Android新的网络请求框架volley源码解释及示例
- C语言基础(八)字符串
- Android_10_java调用C(借助NDK工具自动生成.so)
- 二叉树前序遍历的三种方法
- 设计模式---单例模式
- iOS设计模式 - 中介者
- HUST - 1010 The Minimum Length(KMP 循环节)
- JS操作iframe(一)
- C++:函数模板与模板函数
- 虚拟现实时代的开启:Oculus Rift年内开始发售
- 动态数组
- 使用API方式操作数据库
- FastCGI
- win32 进程创建、查看和限制
- 静态库+动态库