本题转译自 [POI 2006] OKR-Periods of Words。 给定一个长度为 的字符串 ,其中每个字符 均为小写英文字母。 定义一个字符串 的匹配周期为:如果 是其某个真前缀不断重复形成的无限字符串的前缀,则称这个真前缀的长度是 的一个匹配周期。例如,有字符串 ,其真前缀 的长度 就是一个匹配周期(其不断重复形成的无限字符串为 )。 请你计算 的所有 个前缀的最大匹配周期长度之和。特别地,若某个前缀不存在匹配周期,则其最大匹配周期长度计为 。 【名词解释】 字符串的前缀:从字符串的第一个字符开始,向后连续取若干个字符得到的字符串。更具体地,字符串 前 个字符构成的字符串被称为 的第 个前缀,也记为 。如果该前缀不为原字符串本身,则称该前缀为字符串的真前缀。
输入描述:
第一行输入一个整数 ,表示字符串长度。 第二行输入一个长度为 ,仅由小写字母组成的字符串 。


输出描述:
在一行上输出一个整数,表示所有前缀最大周期长度的总和。
示例1

输入

8
babababa

输出

24

说明

\hspace{15pt}在这个样例中,字符串 t 的各前缀及其最大周期长度:
\hspace{23pt}\bullet\,1 个前缀 \texttt{b},其不存在最大周期;
\hspace{23pt}\bullet\,2 个前缀 \texttt{ba},其不存在最大周期;
\hspace{23pt}\bullet\,3 个前缀 {\color{orange}{\texttt{ba}}}\texttt{b},其最大周期长度为 2
\hspace{23pt}\bullet\,4 个前缀 {\color{orange}{\texttt{ba}}}\texttt{ba},其最大周期长度为 2
\hspace{23pt}\bullet\,5 个前缀 {\color{orange}{\texttt{baba}}}\texttt{b},其最大周期长度为 4
\hspace{23pt}\bullet\,6 个前缀 {\color{orange}{\texttt{baba}}}\texttt{ba},其最大周期长度为 4
\hspace{23pt}\bullet\,7 个前缀 {\color{orange}{\texttt{bababa}}}\texttt{b},其最大周期长度为 6
\hspace{23pt}\bullet\,8 个前缀 {\color{orange}{\texttt{bababa}}}\texttt{ba},其最大周期长度为 6
\hspace{15pt}综上,所有前缀最大周期长度之和为 0+0+2+2+4+4+6+6=24

备注:
本题已于下方时间节点更新,请注意题解时效性:1. 2025-11-20 优化题面文本与格式。
加载中...