luogu#P9089. 「SvR-2」Work

    ID: 13073 远端评测题 1000ms 512MiB 尝试: 0 已通过: 0 难度: 5 上传者: 标签>字符串二分洛谷原创后缀自动机,SAMO2优化哈希,HASH洛谷月赛

「SvR-2」Work

题目描述

给定 nn由小写字母组成的字符串,定义第 ii 个字符串的价值为其有意义的子串的数量(如果有多个本质相同的子串也统计多次),第 ii 个字符串的一个子串有意义,当且仅当这个子串能被分成若干个串,其中每个串都是这 nn 个字符串中任意一个字符串的任意一个后缀。

这里有一个 n=4n=4 的例子:

int
printf
scanf
ntnt
  • 对于 printf 这个字符串而言,intf 是有意义的,因为可以表示成 intf ,分别是 intscanf 的后缀,而 rint 则不是。

  • 对于 ntnt 这个字符串而言,ntnt 也是有意义的,因为可以表示成 ntnt,它们都是 int 同一个后缀,或者可以表示成 ntnt,是 ntnt 的一个后缀。

现在,小 Z 想知道这 nn 个字符串价值之和。

输入格式

第一行一个整数 nn

之后 nn 行,每行一个字符串。

输出格式

一行一个整数,表示价值之和。

4
int
printf
scanf
ntnt
23
4
ireallywanttobemissjiaransdog
butmissjiaransaidthatshelikedcatsandicried
iknowwhyicrywheniamneitheradognoracatbecauseimactuallyamouse
ineverexpectedmissjiarantolikeherselfiunderstandthatallpeopleliketounderstandthecutedogorcatthatyuyuusestomakemoneyandnoonelikesthemousewithwetandwetdiseases
391

提示

数据规模与约定

本题开启捆绑测试和 O2 优化。

sis_i 表示第 ii 个字符串长度。 | Subtask | 数据范围/特殊性质 | 分值 | | :------: | :------: | :------: | | 11 | n3n\le 3si10\sum\limits \lvert s_i\rvert\le10| 5pts5 \operatorname{pts} | | 22 | n=26n=26,每种字符串均由一种字符组成 | 5pts5 \operatorname{pts} | | 33 |n=1n=1 | 15pts15 \operatorname{pts} | | 44 | si2000\sum\limits \lvert s_i \rvert \le 2000 | 15pts15 \operatorname{pts} | | 55 | si2×105\sum\limits \lvert s_i \rvert \le 2\times10^5 | 30pts30 \operatorname{pts} | | 66 | si106\sum\limits \lvert s_i \rvert \le 10^6 | 30pts30 \operatorname{pts} |

对于 100%100\% 的数据,1n5×1051\le n \le 5\times10^5nsi106n\le \sum\limits \lvert s_i \rvert \le 10^6