本文共 2262 字,大约阅读时间需要 7 分钟。
题目大意: 给出 n n n 个模板串以及 m m m 个询问,每次询问一个串是多少个模板串的子串。
题解
显然直接建一个广义SAM,然后标记一下包含某个模板串前缀的状态
属于哪个模板串,记为 b e l o n g [ i ] belong[i] belong[i],那么问题变成了,询问时在广义SAM中找到这个串对应的状态,然后这个状态在后缀链接树中的子树中包含多少个不同的 b e l o n g [ i ] belong[i] belong[i]。
那么后面这个问题套一下dsu on tree的板子,预处理出每个节点的答案,询问的时候直接拿就好。
代码如下:
#include #include #include
转载地址:http://ejnib.baihongyu.com/