LA 3026 POJ 1961 KMP水题
2013-02-19 19:30
225 查看
KMP理解以后这种题很水。不解释。
LA题目链接
LA题目链接
#include <cstdio> #include <cstring> #include <algorithm> using namespace std; char s[1000006]; int f[1000006]; int n; void getfail(char *s) { f[0] = f[1] = 0; for(int i = 1; i < n; i++) { int j = f[i]; while(j && s[i] != s[j]) j = f[j]; if(s[i] == s[j]) j++; f[i+1] = j; } } int main() { int i, j, cas = 1; while( ~scanf("%d", &n) && n) { scanf("%s", s); getfail(s); printf("Test case #%d\n", cas++); for(i = 2; i <= n; i++) { if(f[i] > 0 && i % (i - f[i]) == 0) printf("%d %d\n", i, i / (i - f[i])); } puts(""); } return 0; }
相关文章推荐
- LA 3026 && POJ 1961 Period(KMP求前缀的最短循环节)
- LA 3026 && POJ 1961 Period (利用kmp中的next数组找最小的循环节 )
- LA 3026 && POJ 1961 Period (KMP算法)
- poj1961--Period(KMP求最小循环节)
- poj 1961:Period (KMP)
- POJ 1961Period / POJ 2406 Power Strings / POJ 3461 Oulipo /SDUT 2747 循环节 初涉KMP
- POJ Period 1961【KMP】
- LA_3026_Period_(kmp)
- POJ_1961 Period(KMP)
- POJ 1961/POJ 2406 /POJ 2752 /【KMP应用】
- POJ 1961(KMP前缀最长重复子串)
- (POJ)1961 - Period 【KMP】
- LA-3026 Period(kmp应用)
- poj 1961(KMP)
- POJ 1961 KMP
- poj 1961 Period(数据结构:KMP)
- poj 1961 KMP的应用
- POJ 题目1961 Period(KMP水)
- poj 1961 Period(未优化KMP的next数组)
- POJ 1961 Period——kmp求最小循环节