编程题
### 问题描述 给出一个小写字符串 $s$,设 $s_i$ 表示以第 $i$ 个位置为起点的 $s$ 的后缀,求 $\sum_{i=1}^{|s|}\sum_{j=i+1}^{|s|} \mathrm{len}(s_i)+\mathrm{len}(s_j)-2\times \mathrm{lcp}(s_i,s_j)$。 其中,$\mathrm{len}(a)$ 定义为串 $a$ 的长度,$\mathrm{lcp}(a,b)$ 表示 $a,b$ 两串的最长公共前缀。 ### 输入格式 输入包括一行: 一行,一个小写字符串 $s$。 ### 输出格式 输出包括一行: 一行,一个整数,表示答案。 ### 样例输入 ```text aba ``` ### 样例输出 ```text 10 ``` ### 说明 $s=aba,s_1=aba,s_2=ba,s_3=a$,则 - $\mathrm{len}(s_1)+\mathrm{len}(s_2)-2\times \mathrm{lcp}(s_1,s_2)=3+2-2\times 0=5$. - $\mathrm{len}(s_1)+\mathrm{len}(s_3)-2\times \mathrm{lcp}(s_1,s_3)=3+1-2\times 1=2$. - $\mathrm{len}(s_2)+\mathrm{len}(s_3)-2\times \mathrm{lcp}(s_2,s_3)=2+1-2\times 0=3$. 所以答案为 $5+2+3=10$。 ### 评测数据规模 对于 $100$% 的评测数据,$1\leq |s|\leq 5\times 10^5$。
查看答案
赣ICP备20007335号-2