![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
后缀自动机
guoshiyuan484
这个作者很懒,什么都没留下…
展开
-
代码
#include#include#include#includeusing namespace std;typedef long long LL;const int N = 20 * 100010;int n, c, tot, len, last;int w[N], son[N][15], step[N], pre[N], first[N], cnt[N], id[N];str原创 2017-09-04 18:56:58 · 223 阅读 · 0 评论 -
后缀自动机习题集与归纳
学习感悟:什么论文证明根本就看不懂。。。。。还是看代码,然后自己再yy下复杂度再理解下是最好的学习方法。。不要死扣论文!!!!!!理解后缀自动机的关键是明白它与后缀树的关系。要明白这一点后缀链接的性质fa(max)+1=son(min-1)有是另一个关键多串的题目:广义后缀自动机:广义的和狭义的主要区别就是广义的串是不连续转移的,狭义的一个串可以看成是多个串组合而成且连续转移。其实原创 2017-09-04 18:54:32 · 1263 阅读 · 0 评论 -
bzoj3238后缀自动机-线性构造后缀树
这个题主要就是注意他计算的是后缀,所以我们让后缀自动机主干上的点的size=1因为不管你怎么构造后缀自动机,在从原点一直连续转移到结尾点的路径上,每个点的最长串一定都是一个后缀(当然我说的是让原来的字符串反转后构造出来的自动机!)其他就是dp的时候有一些技巧注意,具体看代码,哦还有注意用long long #include#include#include#include#i原创 2017-09-03 14:20:13 · 372 阅读 · 0 评论 -
后缀自动机————入门
http://blog.sina.com.cn/s/blog_70811e1a01014dkz.html(主要看图)http://blog.csdn.net/liyuanshuo_nuc/article/details/53561527(看后缀连接作用)http://blog.csdn.net/qq_35649707/article/details/66473069(看算法原创 2017-06-24 11:01:41 · 371 阅读 · 0 评论 -
广义后缀自动机hiho1457
哇我感觉我终于掌握广义后缀自动机了1.后缀链接保证了 被指向的点的最长串+1=起点的最小串2.正向链接相当于将起点代表的串的集合加一个字符然后转移到目标点3.然后还要分连续转移和不连续转移,分点的时候就相当于把原来的串分出来然后凑成连续的转移这题不要照着hiho上的题解写,慢的要死,而且编程复杂度也是刚刚的。#include#include#include#include原创 2017-10-20 13:33:49 · 317 阅读 · 0 评论 -
hdu5769后缀自动机
此题用后缀自动机写也还是可以,只是有许多易错点1.后缀自动机的节点复制后就和原数组的字符没有半点关系了,所以我们一定要注意使用amount这个变量,而不能通过maxx在原字符串中跟新值2.在添加父亲指针时所有的amount都要减掉,这从后缀自动机的节点意义可以看出,每个节点代表的就是一些字符串集合我们当然要把一些字符串集合拿出来给父亲咯。。。#include#include#i原创 2018-02-17 15:15:42 · 285 阅读 · 0 评论