随笔分类 -  字符串

摘要:此题很明显的AC自动机。。。先介绍一个神奇的性质:如果我们将AC自动机的Fail指针全部反向,将得到一棵由Fail指针组成的Fail Tree。对于模式串i来说,它的最后一个字母在Fail Tree中的节点的后代的数量与该串在其它串中出现的次数相等。然后我们得到一个离线算法:将询问双关键字排序,在FailTree上做一次DFS,得到DFS序。za再用树状数组维护前缀和。具体做法:扫描原串,遇到小写字母,将相应的DFS序的位置+1,遇到P询问,B将字母弹出。由于这个题还有许多细节,详细请看代码:#include<iostream>#include<algorithm>#i 阅读全文
posted @ 2013-04-18 16:04 Return_0 阅读(276) 评论(0) 推荐(0)