102135: [AtCoder]ABC213 F - Common Prefixes

Memory Limit:256 MB Time Limit:2 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

Score : $500$ points

Problem Statement

Let the similarity $f(X,Y)$ between two strings $X$ and $Y$ be the length of their longest common prefix.
For example, the similarity between abc and axbc is $1$, and the similarity between aaa and aaaa is $3$.

You are given a string $S$ of length $N$. Let $S_i$ be the suffix of $S$ beginning with the $i$-th character of $S$. For each $k=1,\ldots,N$, find $f(S_k,S_1)+f(S_k,S_2)+\ldots+f(S_k,S_N)$.

Constraints

  • $1 \leq N \leq 10^6$
  • $S$ is a string of length $N$ consisting of lowercase English letters.

Input

Input is given from Standard Input in the following format:

$N$
$S$

Output

Print $N$ lines.

The $i$-th line should contain the answer for $k=i$.


Sample Input 1

3
abb

Sample Output 1

3
3
2

$S_1$ is abb, $S_2$ is bb, and $S_3$ is b.

  • For $k=1$: $f(S_1,S_1)+f(S_1,S_2)+f(S_1,S_3)=3+0+0=3$.
  • For $k=2$: $f(S_2,S_1)+f(S_2,S_2)+f(S_2,S_3)=0+2+1=3$.
  • For $k=3$: $f(S_3,S_1)+f(S_3,S_2)+f(S_3,S_3)=0+1+1=2$.

Sample Input 2

11
mississippi

Sample Output 2

11
16
14
12
13
11
9
7
4
3
4

Input

题意翻译

对于两个字符串 $X,Y$,定义 $f(X,Y)$ 为 $X$ 和 $Y$ 的最长公共前缀长度。现给定一个长为 $n$ 的字符串 $S$,定义 $S_i$ 表示 $S$ 的从第 $i$ 个字符开始的后缀(包含第 $i$ 个字符),你需要对于所有的 $1\le k\le n$ 求出 $\sum\limits_{i=1}^nf(S_k,S_i)$。 Translated by \_Ponder_

Output

得分:500分 部分 部分 问题描述 令两个字符串X和Y之间的相似性$f(X,Y)$为它们最长公共前缀的长度。 例如,abc和axbc之间的相似性为1,aaa和aaaa之间的相似性为3。 给你一个长度为N的字符串S。令$S_i$为以S的第i个字符开始的S的后缀。对于每个k=1,2,...,N,找出$f(S_k,S_1)+f(S_k,S_2)+...+f(S_k,S_N)$。 部分 部分 限制条件 * $1 \leq N \leq 10^6$ * S是一个长度为N的由小写英文字母组成的字符串。 部分 部分 输入 输入格式如下: $N$ $S$ 部分 部分 输出 输出N行。 第i行应包含k=i时的答案。 部分 部分 样例输入1 3 abb 部分 部分 样例输出1 3 3 2 $S_1$是abb,$S_2$是bb,$S_3$是b。 * 当k=1时,$f(S_1,S_1)+f(S_1,S_2)+f(S_1,S_3)=3+0+0=3$。 * 当k=2时,$f(S_2,S_1)+f(S_2,S_2)+f(S_2,S_3)=0+2+1=3$。 * 当k=3时,$f(S_3,S_1)+f(S_3,S_2)+f(S_3,S_3)=0+1+1=2$。 部分 部分 样例输入2 11 mississippi 部分 部分 样例输出2 11 16 14 12 13 11 9 7 4 3 4

加入题单

上一题 下一题 算法标签: