Description
给定n个字符串,询问每个字符串有多少子串(不包括空串)是所有n个字符串中至少k个字符串的子串?
Input
第一行两个整数n,k。
接下来n行每行一个字符串。
Output
一行n个整数,第i个整数表示第i个字符串的答案。
Sample Input
3 1
abc
a
ab
Sample Output
6 1 3
HINT
对于 100% 的数据,1<=n,k<=10^5,所有字符串总长不超过10^5,字符串只包含小写字母。
Source
Adera 1 杯冬令营模拟赛
对多串建一个SAM.我们在最后再讨论这个建法..(张天扬论文里的做法有误…
建好SAM,对每个节点放到SAM上运行,不断向Parent树的根节点上走,把路径上的节点都计个数.为了避免出现重复,记录每个节点最后一次被访问是在哪个串,然后串在运行的时候如果遇到了这个串已经访问过一遍的节点就停止.复杂度是 O(nn