![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
后缀自动机
MirrorGray
这个作者很懒,什么都没留下…
展开
-
BZOJ3998: [TJOI2015]弦论
听说是后缀自动机裸题? 深度理解一下SAM就会发现,可重复的话,每个np的初始值是1然后自底向上拓扑排序一遍,就得到了每个节点代表的字串出现的次数。不可重复的话,每个节点的val是1即可。 对于tr[i].sum=∑tr[ tr[i].nxt[j] ].sum即可,sum数组搞出来就26分得了233…#include<cstdio>#include<cstring>#include<iost原创 2016-04-28 15:32:48 · 807 阅读 · 2 评论 -
BZOJ2946: [Poi2000]公共串
为啥没人写hash或者sa?不明觉厉一脸懵逼………… 于是我也跟风写一发SAM吧…>_<… 把第一个串建SAM,后面的每个放到SAM里跑,匹配到对应的节点,就与当前长度取max(len[p]=max(len[p],tmp)),表示这个串在这个节点能匹配的最大长度,然后每个串取min,意味着取出来的是公共字串(ans[i]=min(ans[i],len[i])),最后所有ans取max,表示所有公原创 2016-04-30 16:51:46 · 3588 阅读 · 0 评论 -
BZOJ3676: [Apio2014]回文串
比较重要的结论:一个字符串内本质不同的回文串的级别是 O(n)的,因为manacher的时候每次暴力扩展出来的回文串才是新的回文串,最多扩展O(n)次。 所以我们可以对所有本质不同的回文串在后缀数组/后缀自动机上求一下出现了多少次即可… 注意注意注意manacher不要写错…>_<… SA:#include<cmath>#include<cstdio>#include<cstring>原创 2016-04-28 20:56:55 · 934 阅读 · 0 评论