CF1202E You Are Given Some Strings...
CF1202E You Are Given Some Strings...
题意:
直接拼不行,于是我们直接枚举原串的断点(注意这个技巧)。
然后发现对于每个拼接其实就是 AC 自动机,首先,我们由 Fail 树的性质—————不断跳到当前前缀的后缀的位置,可以得出当前点的后缀串匹配的个数就是 \(dep_i\) 个。
那么对于剩下的另一半,我们可以把所有的串都反过来再跑一次 AC 自动机,最后答案很明显就是乘法原理:把 \(n\) 个断电的答案累加,对于每一个点的贡献就是:左边可以有的前缀的后缀的数量*右边可以有的后缀的前缀数量,其实两者就是其在 AC 自动机上的深度。
所以利用这个性质我们直接统计即可。