#P3693. Maximum repetition substring

    ID: 2694 传统题 1000ms 256MiB 尝试: 2 已通过: 1 难度: 10 上传者: 标签>2008 Asia Hefei Regional Contest Online by USTC

Maximum repetition substring

P3693. 最大重复子串


题目描述

一个字符串的重复次数RR定义为:该字符串可以被分割成RR完全相同的连续子串的最大数目。例如:

  • 字符串 "ababab""ababab" 的重复次数是33(因为它可以分割为33"ab""ab"
  • 字符串 "ababa""ababa" 的重复次数是11(因为它无法分割为多个相同的连续子串)。

给定一个仅包含小写字母的字符串,请找出其中重复次数最大的子串。

输入格式

输入包含多个测试用例。每个测试用例占一行,给出一个非空的小写字母字符串,长度不超过100,000100,000
最后一个测试用例后是一个单独的 # 表示输入结束。

输出格式

对于每个测试用例,输出一行,格式为 Case X: Y,其中:

  • XX 是测试用例编号(从11开始)
  • YY 是满足条件的子串(如果有多个解,输出字典序最小的那个)。

样例输入

ccabababc
daabbccaa
#

样例输出

Case 1: ababab
Case 2: aa

题目来源

2008年亚洲合肥赛区网络赛(USTC主办)


关键点说明

  1. 重复次数RR的数学定义:
    若字符串SS可表示为S=TRS = T^R(即子串TT重复RR次),则RR的最大值即为所求。
  2. 字典序最小:当存在多个子串的RR相同时,选择字母序最小的那个(例如 "aa"<"ab""aa" < "ab")。
  3. 高效算法需求:因字符串长度可达10510^5,暴力解法(O(n3)O(n^3))不可行,需使用后缀数组或O(nlogn)O(n \log n)的优化算法。