A86018.LJJ 的字符串

提高+/省选-

通过率:0%

时间限制:3.00s

内存限制:1024MB

题目描述

LJJ 拿到了一串来自火星的字符串。

字符串中,每个字符都是一种火星字母,LJJ 将其转换为小写英文字母 a∼z\texttt{a}\sim \texttt{z},为了便于发现其中的奥秘。

仔细看,这个字符串杂乱中带着有序,有许多重复的片段。于是,LJJ 请来了作为字符串分析专家的你,来帮他分析计算这个字符串的神秘度。

设 nn 是这个字符串的长度。
设 S[i,j]S[i,j] 表示字符串 SS 中第 ii 个位置到第 jj 个位置的连续子串(字符串下标从 11 开始)。

若 ii , jj , len\text{len} 同时满足

  • 1⩽i<j⩽i+len−1<j+len−1⩽n1\leqslant i<j\leqslant i+\text{len}-1<j+\text{len}-1\leqslant n
  • S[i,i+len−1]=S[j,j+len−1]S[i,i+\text{len}-1]=S[j,j+\text{len}-1]

则这个三元数对 (i,j,len)(i,j,\text{len}) 对 SS 的神秘度的贡献是 len\text{len} 。

输入一个字符串,输出其所有前缀的神秘度。由于这个值过大,所以请对 109+710^9+7 取模并输出。

输入格式

输入仅一行:仅由小写字母构成的字符串 SS。

输出格式

输出共 nn 行,第 ii 行的整数是前 ii 个位置表示的前缀的神秘度。

输入输出样例

  • 输入#1

    aaaaaa

    输出#1

    0
    0
    2
    7
    19
    40
  • 输入#2

    ababab

    输出#2

    0
    0
    0
    0
    3
    10
  • 输入#3

    aabababacbacbac

    输出#3

    0
    0
    0
    0
    0
    3
    10
    22
    22
    22
    22
    22
    26
    35
    50

说明/提示

对于 20%20\% 的数据,1⩽n⩽10001\leqslant n\leqslant 1000;
对于 40%40\% 的数据,1⩽n⩽5×1051\leqslant n\leqslant 5\times 10^5,且 SS 仅由 a\texttt{a} 构成;
对于 60%60\% 的数据,1⩽n⩽1051\leqslant n\leqslant 10^5;
对于 100%100\% 的数据,1⩽n⩽5×1051\leqslant n\leqslant 5\times 10^5。

输入解题思路,AI测评打分。不知道怎么写?

首页