Luogu P4391 KMP求字符串最小周期


题目描述

给你一个字符串 \(s1\),它是由某个字符串 \(s2\) 不断自我连接形成的。但是字符串 \(s2\) 是不确定的,现在只想知道它的最短长度是多少。

输入格式

第一行一个整数 \(L\),表示给出字符串的长度。

第二行给出字符串\(s1\) 的一个子串,全由小写字母组成。

输出格式

仅一行,表示 \(s_2\) 的最短长度。

题解

乍看一点不会,看了题解才明白还有这种操作。

最小周期为 n - next[n]

以下是以图例的方式解释最小周期的式子:

交叉区域为一周期

交叉区域不为一周期

不交叉

相关