摘要: 题目传送门 分析: 把后面的串建一个广义SAM,每个点开一个线段树,下标是该点所在的串的编号,记录这个编号的T串里这个endpos集合子串的出现次数 Parent树上线段树合并 然后对S串每一个前缀的终点,找到其在SAM上对应的点和匹配长度 然后每次询问树上培增找到子串所在的endpos集合的点,查 阅读全文
posted @ 2020-06-11 21:59 Izayoi_Doyo 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 题目传送门 分析: 最暴力的做法,A向可以控制的B连边,B向以它为前缀的A连边 然后拓扑排序求一条路径的最大值 复杂度$O(n^2)$ 明显要优化连边,这里给出两种解法: SAM优化建边: 这里要前缀关系,我们反向建SAM将其变成后缀关系 对于每个串$[l,r]$,我们先找到$r$结尾的前缀在SAM 阅读全文
posted @ 2020-06-11 19:48 Izayoi_Doyo 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 题目传送门 分析: 前缀的公共后缀,那直接SAM安排上 两个前缀的公共后缀为两个串对应Parent树上节点的LCA 于是$[l,r]$之间的公共后缀最长对应这些点两两在Parent树上LCA的最大的len Set启发式合并做法: 建出了Parent树,我们考虑每一个点$u$,合并它的子树集合时,两个 阅读全文
posted @ 2020-06-11 15:51 Izayoi_Doyo 阅读(185) 评论(0) 推荐(0) 编辑