1 条题解
-
0
自动搬运
来自洛谷,原作者为

dspt
その日まで 飛ばあげ 嵐がさわってゆくまで搬运于
2025-08-24 22:56:23,当前版本为作者最后更新于2024-03-25 15:11:30,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
String Round Rank 6 纪念,场切了此题,写篇题解。
题目涉及了 Border,显然可以跟 KMP 结合,此外就是一些分类讨论了。
性质
- 长为 的字符串 为周期字符串等价于:存在长为 的字符串 ,满足:, 与 个 拼接而成的字符串等价。 被称为 的一个周期。
- 满足条件一的最小的 被称为字符串 的最小周期。
- 若长为 的字符串 为周期字符串,记其最长真 border 的长为 ,若 存在周期 ,则 为 的最小周期。
这些性质的证明可以见有关 KMP 的文章。
分类讨论
我们使用 KMP 求出 的最长真 border ,令 ,下面对 进行分类讨论。
1: 为空
显然每次根本无法拓展,答案即为 。
2: 为 的一个周期
假设已用 KMP 求出最长真 border ,判断 是否为 的周期是简单的。
由于拓展的字符串需要是真 border,每次拓展的长度即为 ,拓展 次后的 即为 ,求和得 ,快速幂计算即可。
3: 不是周期字符串
注意:此情况的前提是不满足前两个情况。
显然每次拓展的长度均为 ,拓展 次后长度为 , 次后长度为 ,求和得 。
4: 是周期字符串
注意:此情况的前提是不满足前两个情况。
此情况的讨论应该是最容易漏掉的一种, 是否是周期字符串跟 是否是周期字符串同理,容易判断。
设 的最小周期为 ,且 在 的前缀中重复了 次, 在 的后缀中重复了 次。
例如:
abababcabab,则abab,,ab在 的前缀中重复了 次,在 的后缀中重复了 次。这时的拓展情况应该是怎样的呢?不难发现每次向后拓展 个 。
将 拆开助于思考:
- 在 时,每次拓展 个 ,同时 ,这样的拓展不超过 次,可以暴力枚举。
- 在 时,每次拓展 个 ,由于 这个数值不会变,所以容易计算出。
具体地,计算第一部分暴力维护长度 和拓展次数 ,若 ,将答案加上 。第二部分仅在 时有贡献( 是完成第一部分的拓展次数),由于每次拓展长度固定,可以用情况三的式子计算。
容易发现第三种情况和这种情况类似,可以令 ,合并到一起计算。
- 1
信息
- ID
- 9688
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 6
- 标签
- (无)
- 递交数
- 0
- 已通过
- 0
- 上传者