题目链接: "戳我" 广义SAM 就是我们把两个串都建立到后缀自动机上面,然后记录一下每个np节点到底在哪个串里面出现了。(因为只有np节点是真正建立出来,有实际意义的,代表前缀的节点) 然后我们建立出来dfs树,用这个endpos类的大小,乘上它在第一个串中出现的次数 第二个串中出现的次数即可。 ...
分类:
其他好文 时间:
2019-05-03 09:47:12
阅读次数:
106
题意 思路 好像还是回文自动机裸体,但是 $\text{Manacher}$ +后缀自动机+倍增也可以解决。 首先可以一遍 $\text{Manacher}$ 得到本质不同的回文串,然后分别求一次出现次数,更新答案。不能发现后缀自动机可以比较轻松的求出一个字串的出现次数,但是需要快速回答。所以需要快 ...
题面描述 火星人最近研究了一种操作:求一个字串两个后缀的公共前缀。比方说,有这样一个字符串:$madamimadam$,我们将这个字符串的各个字符予以标号: 序号 字符 现在,火星人定义了一个函数$LCQ(x, y)$,表示:该字符串中第$x$个字符开始的字串,与该字符串中第$y$个字符开始的字串, ...
分类:
Web程序 时间:
2019-04-21 14:15:15
阅读次数:
191
P2336 [SCOI2012]喵星球上的点名 ...
分类:
其他好文 时间:
2019-04-15 22:58:49
阅读次数:
193
https://ac.nowcoder.com/acm/contest/625/K 题意: 给出Q 个询问 i , 求 s[0..i-1] 与 s[i...len-1] 有多少相同的字串 分析: 给出了查询 , 容易想到先预处理出答案好吧 , 字符串的问题也容易想到后缀自动机 ,但是我们该怎么使用呢 ...
分类:
其他好文 时间:
2019-04-15 21:42:31
阅读次数:
285
Description 给定一个长度为 $n$ 的字符串 $S$,令 $Ti$ 表示它从第 $i$ 个字符开始的后缀。求 $\sum\limits_{1 \leq i include include include using namespace std; const int N = 500005; ...
分类:
其他好文 时间:
2019-04-13 20:28:43
阅读次数:
148
http://acm.hdu.edu.cn/showproblem.php?pid=4622 题意:给出一个字符串和q次询问,每次询问[l,r]区间内不同子串的个数 分析: N<=2000. 我是用后缀自动机预处理出所有区间的不同子串个数。 建立n次后缀自动机。 为什么要建立N次呢? 因为鸭 , 后 ...
分类:
其他好文 时间:
2019-04-10 23:29:44
阅读次数:
239
题目传送门 题意:给出一个字符串,求子串的个数。 思路:后缀自动机的题真是每做一题就更理解一些。 SAM中的每一状态$p$都代表了一种子串,而p包含的字符串的个数是$len[p]-len[fa[p]]$,所以答案就是$sigma len[i]-len[fa[i]]$,还有答案要开long long。 ...
分类:
其他好文 时间:
2019-04-06 23:10:25
阅读次数:
285
题目 【题目描述】 一般地,对于一个字符串 S,和 S 中第 $ i $ 个字符 x,定义子串 $ T=S(i.j) $ 为一个关于 x 的识别子申,当且仅当: 1.$ i \leq x \leq j $ 2.T 在 S 巾只出现一次 比如,对于 banana 的第 $ 5 $ 个字符,“nana” ...
分类:
其他好文 时间:
2019-04-06 16:48:20
阅读次数:
124
题面传送门 题意:给出两个$n=250000$的字符串,求最长公共子串。 思路:把第一个字符串放到SAM里面去。 对于第二个串,能匹配则匹配,不能匹配就跳回能匹配的位置,如果一个都不能匹配,则cur要重新初始化为root。 对后缀自动机的理解还比较模糊,怕误人子弟,此题就不做详述。 ...
分类:
其他好文 时间:
2019-04-06 14:13:07
阅读次数:
128