码迷,mamicode.com
首页 >  
搜索关键字:fail树    ( 108个结果
BZOJ 3881 Coci2015 Divljak fail树+树链的并
题目大意:给定两个字符串集合S和T,初始给定S集合中的所有字符串,不断向T集合中添加字符串,以及询问S集合中的某个字符串在T集合中的多少个字符串中出现过 神题- - 首先对S集合的所有字符串构建fail树 T集合中每加入一个字符串,我们就将这个字符串在AC自动机上跑一遍,并记录经过的所有节点 根据fail树的性质,这些节点到根路径上的所有节点的并集的出现次数都加了1 因此我们要求的就是树...
分类:其他好文   时间:2015-01-22 18:21:37    阅读次数:345
【BZOJ2434】【NOI2011】阿狸的打字机 AC自动机
这是一道神题。 首先我们需要建立AC自动机,然后再建个Fail树,之后发现     如果询问a串在b串中出现了几次,那么只需要看b串在AC自动机上所有的节点中有多少个节点,在a串的结束节点在Fail树上的子树中就可以了。 然后这样做就很可以了,但是仍然不能AC, 这时我们只需要按照Fail树的dfs序建立数据结构(我写了树状数组)进行区间查询就好了。 这时对于以上的b串,...
分类:其他好文   时间:2015-01-19 17:15:24    阅读次数:128
[BZOJ 3172] [Tjoi2013] 单词 【AC自动机】
题目链接:BZOJ - 3172题目分析: 题目要求求出每个单词出现的次数,如果把每个单词都在AC自动机里直接跑一遍,复杂度会很高。 这里使用AC自动机的“副产品”——Fail树,Fail树的一个性质是,一个字符串出现的次数,就等于以它的结点为根的Fail树中的子树中所有结点的 Cnt 和。 ...
分类:其他好文   时间:2014-12-10 20:59:41    阅读次数:222
BZOJ 2434 NOI 2011 阿狸的打字机 AC自动机构造fail树
题目大意:有一种打字机上有28个字母,分别是26个小写字母和BP,其中B代表退格,P代表换行,每一行就是一个字符串。现在给这些字符串标号,并询问x串在y串中出现过几次。 思路:这算是NOI史上最难的字符串的题了吧(动物园)。 首先按照题意不难建一个AC自动机出来,按照正常的思路,对于每一个询问都需要在AC自动机上暴力的查找。但这样时间会十分好看。 于是我们想,fail指针构成的一定是...
分类:其他好文   时间:2014-12-10 16:24:22    阅读次数:249
BZOJ 2754 SCOI 2012 喵星球上的点名 后缀数组
题目大意:在喵星球上有一些喵~,每个喵都有一个姓和一个名字。点名的时候如果一个喵中姓或者名中有这个串的话他就会喵。问每次点名有几个喵喵了,和每个喵喵了几次。 思路:好萌的题喵~ AC自动机构造fail树是可以做的,但是和SA乱搞的时间差不多,我就是SA乱搞的w 把所有的串(姓名,询问)用$连接成一个串,然后做后缀数组,height数组。过程中记录一下每一个后缀数属于哪个喵,还有询问在...
分类:编程语言   时间:2014-12-10 10:50:36    阅读次数:229
BZOJ 2754 SCOI2012 喵星球上的点名 fail树+set启发式合并
题目大意:给定n个目标串和m个模式串,问这m个模式串每个在多少个目标串中出现过,以及n个目标串每个以最多多少个模式串为子串 我错了……就算用fail树+set启发式合并也优化不到O(nlog^2n)……这题的数据范围相当无解啊 首先将所有名字和点名的字符串全都插进AC自动机 将每个点上开一个set记录这个点是哪些喵星人的名字的前缀 然后建立fail树 沿着fail树从下到上启发式合并 每...
分类:其他好文   时间:2014-12-09 09:21:35    阅读次数:286
BZOJ 3172 Tjoi2013 单词 fail树
题目大意及后缀数组做法见 http://blog.csdn.net/popoqqq/article/details/41042473 原来正解是fail树……难怪后缀数组被卡成这样 首先我们将给出的n个串构建AC自动机 朴素的做法是对于每个串将这个串每个节点沿着fail指针扫一遍,将路径上的所有点的cnt++ 但是这样做会TLE 我们不妨反向思考 fail指针反向后是一棵树 沿着fail...
分类:其他好文   时间:2014-12-08 21:29:02    阅读次数:203
BZOJ 2434 NOI2011 阿狸的打字机 fail树+树状数组
题目大意:初始字串为空,首先给定一系列操作序列,有三种操作: 1.在结尾加一个字符 2.在结尾删除一个字符 3.打印当前字串 然后多次询问第x个打印的字串在第y个打印的字串中出现了几次 卡了很久……到底还是对AC自动机了解不是很深啊QAQ fail树不是很难想 至少在用AC自动机切掉3172之后不是很难想…… 首先构建AC自动机 注意由于这个字串的特殊构造 我们不必每打印一个字符串再...
分类:编程语言   时间:2014-11-26 19:08:19    阅读次数:290
108条   上一页 1 ... 9 10 11
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!