AC自动机
CloudrooF
这个作者很懒,什么都没留下…
展开
-
BZOJ2434 [Noi2011]阿狸的打字机【AC自动机+dfs序+树状数组】
题意:给出阿狸的打字顺序(小写字母是写入,‘B'是删除,’P'是打印,此处产生新的字符串),给出多组询问,每次询问第x号字符串在第y号字符串中的出现次数。 学过AC自动机的都知道,自动机上串A在串B中的出现次数,就是fail树上以串A结尾节点为根的子树中,串B的节点个数。这题我们用离线的方法,以y为关键字排序,在fail树的dfs序上用树状数组维护节点个数。为什么要按y为关键字排序呢?忽略‘P'原创 2015-04-24 09:56:12 · 408 阅读 · 0 评论 -
BZOJ1030 [JSOI2007]文本生成器【AC自动机+DP】
题意:给定n个字符串,要求构造长度为m的字符串使其包含至少一个给定字符串,求方案数。 AC自动机+DP肯定是显然的啦。但是要求“至少一个”被包含肯定不好搞,所以我们反过来想,用总方案数-一个也不包含的方案数这样就好搞多了。具体算法流程如下: 1.对n个字符串建立AC自动机; 2.DP,f[i][j]表示字符串构造到第i位,在AC自动机上跑到j节点时的方案数。转移方程:(如果tr[j][k]不原创 2015-04-24 08:54:51 · 574 阅读 · 0 评论