\(\text{Problem}:\)Substrings in a String \(\text{Solution}:\) 考虑分块,对每个块建出后缀自动机。 修改:暴力重建 \(i\) 所在块的 \(\text{SAM}\)。 查询:分类讨论处理。 若 \(\lvert s\rvert> B\) ...
分类:
其他好文 时间:
2021-05-04 15:19:13
阅读次数:
0
基本性质 每个状态中字符串的 endpos 集合相同。 接受字符串的所有子串。 后缀树上两个结点的 lca 即为两字符串的最长公共后缀。 匹配字符串 维护当前匹配长度,失配时跳父亲即可。 后缀树 可以用 LCT 来维护信息。 记录字符串右端点对应的前缀在后缀树的位置,通过倍增快速找到该字符串所在状态 ...
分类:
其他好文 时间:
2021-05-03 12:26:25
阅读次数:
0
58.SAM后缀自动机 东西挺多的 SAM中每一个节点都是一个endpos的等价类,节点与节点之间有字符的转移。构成的SAM是一个DAG,每一个在原串中本质不同的子串都唯一对应一条在SAM从初始节点出发的路径 可以发现对于一个节点的那些串,如果以长度升序排序后,前一个串是后一个串的后缀并且长度相差1 ...
分类:
其他好文 时间:
2020-12-28 11:12:57
阅读次数:
0
给定一个长度为 $n$ 的主串 $S$,有 $m \le 100$ 个询问,每次给定一个询问串 $p_i$,长度不超过 $10^3$。输出有多少个询问串,满足存在 $S$ 的两个不相交的子串拼起来与 $p_i$ 相等。 ...
分类:
其他好文 时间:
2020-09-09 18:43:49
阅读次数:
39
比较好的一道后缀自动机题. 先枚举必选的前缀 $[1,k]$ 然后加上 $[k+1,n]$ 中本质不同子串个数. 但是这样的话会算重. 考虑哪些地方算多了: 假设 $i-1$ 的前缀为 $pre[i-1]$,然后当前的前缀为 $pre[i-1]+x$. 那么当前肯定会枚举到 $pre[i-1]+(x ...
分类:
其他好文 时间:
2020-07-27 13:57:04
阅读次数:
59
P3804 【模板】后缀自动机 (SAM) 参考: 不同子串个数 用d[i]来表示该状态点是否为终止点,最后利用每个点的后缀链接形成一棵树,每个点所表示的最长字符串都是其子树中各节点的最长公共后缀。 // Created by CAD #include <bits/stdc++.h> using n ...
分类:
其他好文 时间:
2020-07-26 19:05:13
阅读次数:
52
https://www.luogu.com.cn/problem/P3346 广义后缀自动机 我们需要把所有两两叶子节点之间的路径丢进广义后缀自动机中,然后计算不同子串个数 观察数据,叶子节点数为$\le 20$,好像有点小 那么我们暴力枚举每个叶子节点为根的情况,然后处理根与其他叶子节点的路径 认 ...
分类:
其他好文 时间:
2020-07-23 22:29:56
阅读次数:
65
模板题:Luogu P3804 感谢ivorysi学姐_(:з」∠)_给我讲了一上午才明白 后缀自动机 ${\rm (Suffix\ Automaton,SAM)}$是一个用来匹配单模板串的所有子串的算法。 ${\rm SAM}$的空间复杂度、构造的时间复杂度都是$O(n)$的。 后缀自动机是一个$ ...
分类:
其他好文 时间:
2020-07-16 12:08:04
阅读次数:
64
给定 $n$ 个由小写字母组成的字符串 $s_1,s_2\ldots s_n$,求本质不同的子串个数。(不包含空串) ...
分类:
其他好文 时间:
2020-07-12 18:26:50
阅读次数:
49
给定一个数字串 $S$,求出现了 $k$ 次的子串的最大长度。 ...
分类:
其他好文 时间:
2020-07-11 13:17:03
阅读次数:
49