摘要: 后缀自动机+LCT 终于做了这道题 思路比较明显,每次的答案就是走到的最终节点的Right集合大小,如果走不到就是0。但是问题在于每次添加字符后parent树的形态变了,那么Right集合也要变化,这个我们用LCT维护,由于是有根树,比较好维护。 #include<bits/stdc++.h> us 阅读全文
posted @ 2017-11-19 19:30 19992147 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 广义后缀自动机 具体我也不是很清楚 像这样有很多个串要统计方案的题我们建一个广义后缀自动机,就是每次对一个串建完后把last设为root,然后就是每个串在自动机上跑一遍,记录每个节点的访问次数,为了避免重复,我们记录当前这个节点这个字符串走没走过,出现次数也是要向上推的。最后按照套路把贡献向上推,再 阅读全文
posted @ 2017-11-19 19:27 19992147 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 后缀自动机+dp 一个串在另一个串上跑。 先对A建出自动机,然后用B在上面跑,记录当前匹配的最大长度,每次经过一个节点记录经过次数,并加上(len-Max(par))*Right,是这个状态对答案的贡献,然后把每个节点的出现次数向par树上的祖先推一遍计算贡献。 #include<bits/stdc 阅读全文
posted @ 2017-11-19 19:22 19992147 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 后缀自动机+二分+倍增+线段树合并 后缀自动机真好用 后面一个串是固定的,那么我们要对前面的串进行一些操作。我们想既然是求lcp,那么我们得先翻转原串,这样前缀变成了后缀,然后二分一下,从d在自动机上的位置向上倍增,走到第一个Max大于当前答案的位置,用线段树合并判断一下当前是否满足。还是很好写的, 阅读全文
posted @ 2017-11-19 19:18 19992147 阅读(167) 评论(0) 推荐(0) 编辑