随笔分类 - 后缀自动机
摘要:"传送门" 如果这题可以离线的话当然就SAM+线段树合并了,但是它居然来了个强制在线,给了个神奇的解码函数,我没有注意mask是传的参数,交上去直接WA,怀疑人生。 当然这题要强制在线的话就用LCT来维护parent树,维护子树和就行了,LCT的link和cut与sam里fa指针的动作保持一致就很好
阅读全文
摘要:"传送门" 用后缀数组写这个题太反智了,因为是 $O(n^2)$ 的统计答案,所以要用单调栈来做优化,比广义后缀自动机麻烦太多了,这个题就是广义后缀自动机的板子题。 由此可见后缀数组还是处理单字符串或者处理多字符串的长度问题好用一些,这种处理多字符串的方案统计问题就算了 后缀数组代码
阅读全文
摘要:"传送门" 之前用后缀数组+主席树写过: "之前的版本" 学习了后缀自动机和线段树合并之后再来做一下这道题。 首先对字符串 $s$ 建后缀自动机,记录下每个前缀的 endpos 和前缀在 SAM 上所处的位置。 因为 $s$ 的子串唯一对应 SAM 上的某一点,这个询问相当于问 parent 树上某
阅读全文
摘要:"传送门" 也是广义 SAM 的板子题,建好广义 SAM,统计 $epA,epB,epC$,然后对于区间 $ans[len[fa[x]]+1],...,ans[len[x]]$ 加上 $epA\times epB\times epC$ 就行了,当然这个用差分实现简单快捷。 到这里,我后缀自动机的刷题
阅读全文
摘要:"传送门" 没啥好说的,建好广义 SAM 后统计 $endpos$,然后选 $endpos1,endpos2$ 都为 1 的点的长度最小值就是答案。
阅读全文
摘要:"传送门" 从题意可以看出,要从每个叶节点开始遍历给定的树,然后在这个过程中建广义SAM,最后统计不同子串数量。 注意下一边遍历树一边建广义 SAM 的方法,把父节点在 SAM 上的位置作为 last。 还要注意一下这个广义 SAM 的写法,特判一下已经存在的情况。 其实不特判基本上不会出问题,但是
阅读全文
摘要:"传送门" 后缀自动机的经典题了。 统计每个节点的 $endpos$,如果不同位置相同串算 1 个的话,所有点的 $endpos$ 都为 1 就行了。因为空串不算,所以 1 点的 $endpos=0$。 然后在 DAG 上 DP 把每个点能遍历到的点的总值算出来,这个值就代表了以这个点开头的子串个数
阅读全文
摘要:"传送门" 对于给定的串建广义后缀自动机,然后标记每个点所代表的字符串属于多少串,这个标记方式和之前的那道最长公共子串的匹配方式有些像,可以这样理解,枚举这个字符串的前缀,然后将这个前缀的所有后缀都标记上,就是将所有子串都标记了。这个也是后面才理解到的,SAM 的性质实在太神奇了。 然后匹配就不用细
阅读全文
摘要:"传送门" 每个点代表的不同子串个数就是 $len[x] len[fa[x]]$,没必要再在 DAG 上统计从 $1$ 到 $x$ 的路径数了。 当然每个点代表的子串出现次数就是 $endpos$ 值,可以建 $parent$ 树 dfs,也可以直接按 $len$ 排序,形成拓扑序列,然后累加。
阅读全文
摘要:"传送门" 拿到一个串之后,先对它建立 SAM,然后统计每个节点的 $endpos$ 值,就是每个节点所代表的子串所出现的次数,如果这个 $endpos[x]=k$,那么长为 $len[fa[x]]+1,...,len[x]$ 的子串都合法,用差分的方式区间加,然后最后统计答案就是了。
阅读全文
摘要:"传送门" 其实这道题就是给一个字符串,然后问每一个前缀中有多少个不同的子串。 同样用 $len$ 数组的性质,如果新加入一个节点 $x$,那么它对于整个已加入串新增的不同的子串数量就是 $len[x] len[fa[x]]$。 我试着解释一下为什么,因为 $fa[x]$ 代表的所有字符串一定就是
阅读全文
摘要:"传送门" 之前就用后缀数组做过,用字符串哈希做过,现在又用后缀自动机做一次。 用后缀自动机求最长公共子串有两种做法,一是对 $s1$ 建后缀自动机,然后把 $s2$ 拿上去匹配。我用的是这个方法。 二是对 $s1,s2$ 建广义后缀自动机,然后直接算出每个节点的 $endpos_{1,2}$,求
阅读全文
摘要:"传送门" 题解 后缀自动机板子题,直接统计 DAG 的路径数量即可,或者根据 $len$ 数组的性质,即 $x$ 节点产生的未出现的子串数量为 $len[x] len[fa[x]]$。 代码
阅读全文
摘要:"传送门" 还是后缀自动机的模板题,还是计算每个等价类的出现次数,我终于明白为什么那个 f 数组不能在 dfs 的时候赋初值了,因为从父节点中扩展出去的 nq 节点是不能为父节点贡献的。 还缩了缩代码的长度,可以发现 sam 比 acam 还要好写,但是难理解的多。
阅读全文
摘要:"传送门" 终于搞懂了这个东西,以后会多做几道后缀自动机的题的,顺便复习一下后缀数组。 "这篇博客" 讲后缀自动机讲的很不错,推荐初学者看这篇博客学习。 后缀自动机还有很多的性质我还不是很懂,靠之后做的题来补就是了。 这道题最后的清算有两种办法,一种是重新建图dfs,比较方便,还有一种就是按长度对节
阅读全文

浙公网安备 33010602011771号