题目名称 3430. 字符串周期(Period)
输入输出 strperiod.in/out
难度等级 ★★☆
时间限制 1000 ms (1 s)
内存限制 256 MiB
测试数据 7
题目来源 Gravatarsyzhaoss 于2020-07-01加入
开放分组 全部用户
提交状态
分类标签
KMP 字符串
分享题解
通过:14, 提交:18, 通过率:77.78%
Gravataryrtiop 100 0.021 s 1.50 MiB C++
Gravatarfsdh 100 0.023 s 1.31 MiB C++
Gravatar锝镆氪锂铽 100 0.024 s 2.63 MiB C++
GravatarHarry Potter 100 0.024 s 2.63 MiB C++
GravatardarkMoon 100 0.028 s 4.04 MiB C++
Gravatarcb 100 0.032 s 2.30 MiB C++
Gravataryrtiop 100 0.036 s 1.93 MiB C++
Gravatar数声风笛ovo 100 0.039 s 2.63 MiB C++
Gravatar锝镆氪锂铽 100 0.056 s 2.63 MiB C++
Gravatar已注销 100 0.156 s 2.63 MiB C++
关于 字符串周期(Period) 的近10条评论(全部评论)
做题的时候碰到了这个 trick,然鹅不会了QAQ,复习一下,顺手修复了一下题面的 MathJax
Gravataryrtiop
2022-07-06 13:29 1楼

3430. 字符串周期(Period)

★★☆   输入文件:strperiod.in   输出文件:strperiod.out   简单对比
时间限制:1 s   内存限制:256 MiB

【题目描述】

如果一个字符串 $S$ 是由一个字符串 $T$ 重复 $K$ 次形成的,则称 $T$ 是 $S$ 的循环元。使 $K$ 最大的字符串 $T$ 称为 $S$ 的最小循环元,此时 $K$ 称为最大循环次数。

现在给定一个长度为 $N$ 的字符串 $S$,对 $S$ 的每一个前缀 $S[1\sim i]$,如果它的最大循环次数大于 $1$,则输出该前缀的长度和最大循环次数。

【输入格式】

第一行,一个整数 $N$ 表示字符串 $S$ 长度。

第二行,字符串 $S$。

【输出格式】

输出有多行,每行用空格隔开的两个整数,分别表示符合条件的前缀长度和最大循环次数。

前缀长度需要升序排列。

【样例输入1】

3
aaa

【样例输出1】

2 2
3 3

【样例输入2】

12
aabaabaabaab

【样例输出2】

2 2
6 2
9 3
12 4

【数据范围】

输入保证有答案。

$2≤N≤1000000$;

【来源】

《算法竞赛进阶指南》