#3445. Common Prefixes

0

Common Prefixes

Common Prefixes

题目描述

令两个字符串 XX 和 YY 之间的 相似度 f(X,Y)f(X,Y) 为它们最长公共前缀的长度。
例如,abcabc 与 axbcaxbc 的相似度是 11,aaaaaa 与 aaaaaaaa 的相似度是 33。 给定长度为 NN 的字符串 SS。令 SiS_i 为从字符串 SS 的第 ii 个字符开始的后缀。对于每个 k=1,…,Nk=1,\ldots,N,求 f(Sk,S1)+f(Sk,S2)+…+f(Sk,SN)f(S_k,S_1)+f(S_k,S_2)+\ldots+f(S_k,S_N)。

输入格式

输入按下列格式由标准输入给出: NN SS

输出格式

输出 NN 行。 第 ii 行应当包含 k=ik=i 时的答案。

3
abb
3
3
2
11
mississippi
11
16
14
12
13
11
9
7
4
3
4

提示

1≤N≤1061 \leq N \leq 10^6 SS 是一个长度为 NN 的由小写英文字母组成的字符串。S1S_1 是 abbabb,S2S_2 是 bbbb,S3S_3 是 bb。

对于 k=1k=1:f(S1,S1)+f(S1,S2)+f(S1,S3)=3+0+0=3f(S_1,S_1)+f(S_1,S_2)+f(S_1,S_3)=3+0+0=3。 对于 k=2k=2:f(S2,S1)+f(S2,S2)+f(S2,S3)=0+2+1=3f(S_2,S_1)+f(S_2,S_2)+f(S_2,S_3)=0+2+1=3。 对于 k=3k=3:f(S3,S1)+f(S3,S2)+f(S3,S3)=0+1+1=2f(S_3,S_1)+f(S_3,S_2)+f(S_3,S_3)=0+1+1=2.

标签: AtCoder|abc213F

来源

AtCoder|abc213F