/* * POJ_1961 KMP next的典型应用 类似于 poj2406 * Author : a_clay 2014/05/06 */ #include <iostream> #include <cstdio> #include <string> #include <cstring> #include <algorithm> #include <cmath> #define Bug cout << "here\n"; using namespace std; const int M = 1000005; char t[M]; int next[M]; void get_next(int len) { int i, j; i = 0, j = -1; next[0] = -1; while (i < len) { if (j == -1 || t[i] == t[j]) { i++, j++, next[i] = j; } else { j = next[j]; } } } int main() { int n, ca = 1; while (scanf("%d", &n) && n != 0) { scanf("%s", t); get_next(n); printf("Test case #%d\n", ca++); for (int i = 2; i <= n; i++) { if (i% (i - next[i]) == 0 && i / (i - next[i]) > 1) { printf("%d %d\n", i, i / (i - next[i])); } } printf("\n"); } return 0; }
POJ_1961 KMP next的典型应用 类似于 poj2406
转载
POJ_1961 KMP next的典型应用 类似于 poj2406
本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
poj2406
求循环节之类的问题
#include #define ios i++ 循环节