随笔分类 -  广义后缀自动机

摘要:"传送门" 用后缀数组写这个题太反智了,因为是 $O(n^2)$ 的统计答案,所以要用单调栈来做优化,比广义后缀自动机麻烦太多了,这个题就是广义后缀自动机的板子题。 由此可见后缀数组还是处理单字符串或者处理多字符串的长度问题好用一些,这种处理多字符串的方案统计问题就算了 后缀数组代码 阅读全文
posted @ 2020-04-14 14:06 BakaCirno 阅读(148) 评论(0) 推荐(0)
摘要:"传送门" 也是广义 SAM 的板子题,建好广义 SAM,统计 $epA,epB,epC$,然后对于区间 $ans[len[fa[x]]+1],...,ans[len[x]]$ 加上 $epA\times epB\times epC$ 就行了,当然这个用差分实现简单快捷。 到这里,我后缀自动机的刷题 阅读全文
posted @ 2020-04-10 01:39 BakaCirno 阅读(126) 评论(0) 推荐(0)
摘要:"传送门" 没啥好说的,建好广义 SAM 后统计 $endpos$,然后选 $endpos1,endpos2$ 都为 1 的点的长度最小值就是答案。 阅读全文
posted @ 2020-04-10 01:34 BakaCirno 阅读(103) 评论(0) 推荐(0)
摘要:"传送门" 从题意可以看出,要从每个叶节点开始遍历给定的树,然后在这个过程中建广义SAM,最后统计不同子串数量。 注意下一边遍历树一边建广义 SAM 的方法,把父节点在 SAM 上的位置作为 last。 还要注意一下这个广义 SAM 的写法,特判一下已经存在的情况。 其实不特判基本上不会出问题,但是 阅读全文
posted @ 2020-04-10 01:31 BakaCirno 阅读(121) 评论(0) 推荐(0)
摘要:"传送门" 对于给定的串建广义后缀自动机,然后标记每个点所代表的字符串属于多少串,这个标记方式和之前的那道最长公共子串的匹配方式有些像,可以这样理解,枚举这个字符串的前缀,然后将这个前缀的所有后缀都标记上,就是将所有子串都标记了。这个也是后面才理解到的,SAM 的性质实在太神奇了。 然后匹配就不用细 阅读全文
posted @ 2020-04-10 01:15 BakaCirno 阅读(129) 评论(0) 推荐(0)