博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Period (KMP算法 最小循环节 最大重复次数)
阅读量:4873 次
发布时间:2019-06-11

本文共 1561 字,大约阅读时间需要 5 分钟。

目录

Period (KMP算法 最小循环节 最大重复次数)

题目

给出一个字符串s,问在[0, i]区间是否有完整的循环节,若有,输出i并输出循环次数

Input
The input file consists of several test cases. Each test case consists of two lines. The first one contains N (2 <= N <= 1 000 000) – the size of the string S. The second line contains the string S. The input file ends with a line, having the number zero on it.
Output
For each test case, output “Test case #” and the consecutive test case number on a single line; then, for each prefix with length i that has a period K > 1, output the prefix size i and the period K separated by a single space; the prefix sizes must be in increasing order. Print a blank line after each test case.
ample Input
3
aaa
12
aabaabaabaab
0
Sample Output
Test case #1
2 2
3 3

Test case #2

2 2
6 2
9 3
12 4

思路

然后枚举就好

题解

#include 
#include
#define N 1000020using namespace std;char str[N];int nex[N];int len;void getNext(){ int i = -1, j = 0; nex[0] = -1; while (j < len) { if (i == -1 || str[i] == str[j]) nex[++j] = ++i; else i = nex[i]; }}int main(){ ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0); int k, kase = 1; while (cin >> k) { if(k==0) break; cout << "Test case #" << (kase++) << endl; cin >> str; len = strlen(str); getNext(); for (int i = 2; i <= k; i++) { int son = i - nex[i]; if (i % son == 0 && nex[i] != 0) { cout<
<<" "<<(i/son)<

转载于:https://www.cnblogs.com/tttfu/p/11309298.html

你可能感兴趣的文章
问题 B: 习题6-5 数组元素逆置
查看>>
Xenomai 3 migration
查看>>
windows下apache httpd2.4.26集群完整搭建例子:下载、启动、tomcat集群例子
查看>>
Android应用资源---绘制资源类型(Drawable)(四)
查看>>
bzoj 2155 Xor
查看>>
git 设定全局ignore
查看>>
Rails5 layout 和 template
查看>>
Codeforces Round #460 Div. 2 C.D
查看>>
CodeForces 1110H. Modest Substrings
查看>>
同构伪代码彻底理解using 指令
查看>>
落没的十句经典
查看>>
LIST对象排序问题
查看>>
树总结之并查集趣解
查看>>
Don't repeat yourself
查看>>
wpa_supplicant移植与使用(转)
查看>>
iOS开源项目:AFNetworking----写得非常好
查看>>
jq变态全选vs原生变态全选
查看>>
delphi 设置开机自动启动函数
查看>>
CodeForces - 366C Dima and Salad (01背包)
查看>>
关于Linux一些问题和答案
查看>>