
fail树
PoPoQQQ
这个作者很懒,什么都没留下…
展开
-
BZOJ 2434 NOI2011 阿狸的打字机 fail树+树状数组
题目大意:初始字串为空,首先给定一系列操作序列,有三种操作: 1.在结尾加一个字符 2.在结尾删除一个字符 3.打印当前字串 然后多次询问第x个打印的字串在第y个打印的字串中出现了几次 卡了很久……到底还是对AC自动机了解不是很深啊QAQ fail树不是很难想 至少在用AC自动机切掉3172之后不是很难想…… 首先构建AC自动机 注意由于这个字串的特殊构造 我们不必每打印一个字符串再原创 2014-11-26 16:39:36 · 3324 阅读 · 0 评论 -
BZOJ 3172 Tjoi2013 单词 fail树
题目大意及后缀数组做法见 http://blog.youkuaiyun.com/popoqqq/article/details/41042473 原来正解是fail树……难怪后缀数组被卡成这样 首先我们将给出的n个串构建AC自动机 朴素的做法是对于每个串将这个串每个节点沿着fail指针扫一遍,将路径上的所有点的cnt++ 但是这样做会TLE 我们不妨反向思考 fail指针反向后是一棵树 沿着fail原创 2014-12-08 20:18:47 · 2862 阅读 · 0 评论 -
BZOJ 2754 SCOI2012 喵星球上的点名 fail树+set启发式合并
题目大意:给定n个目标串和m个模式串,问这m个模式串每个在多少个目标串中出现过,以及n个目标串每个以最多多少个模式串为子串 我错了……就算用fail树+set启发式合并也优化不到O(nlog^2n)……这题的数据范围相当无解啊 首先将所有名字和点名的字符串全都插进AC自动机 将每个点上开一个set记录这个点是哪些喵星人的名字的前缀 然后建立fail树 沿着fail树从下到上启发式合并 每原创 2014-12-09 00:35:48 · 2102 阅读 · 0 评论 -
BZOJ 3881 Coci2015 Divljak fail树+树链的并
题目大意:给定两个字符串集合S和T,初始给定S集合中的所有字符串,不断向T集合中添加字符串,以及询问S集合中的某个字符串在T集合中的多少个字符串中出现过 神题- - 首先对S集合的所有字符串构建fail树 T集合中每加入一个字符串,我们就将这个字符串在AC自动机上跑一遍,并记录经过的所有节点 根据fail树的性质,这些节点到根路径上的所有节点的并集的出现次数都加了1 因此我们要求的就是树原创 2015-01-22 15:41:34 · 3191 阅读 · 1 评论