AC自动机
文章平均质量分 76
x_1023
这个作者很懒,什么都没留下…
展开
-
BZOJ 1030 [JSOI2007]字符加密Cipher - AC自动机+计数DP
考察内容:AC自动机+DP 题意:给定一组字符串,问一个长为m的串中出现这些串的可能种数 分析: 首先正面求必会出现大量容斥现象,于是求它的补集,即为求不出现这些串的可能种数。 考虑建立一条路径,即为这个串的表示。图的路径即为通过next和fail数组链接,注意为0的next表示连向根节点,一开始从根节点出发,要求不经过end标记过的点(即字符串的尾节点)的路径,可以通过D原创 2017-08-17 00:36:54 · 156 阅读 · 0 评论 -
BZOJ 2434 [Noi2011]阿狸的打字机 - AC自动机+树状数组
这道题要用到fail树,学习到了一点知识。 大概就是在一个字串尾节点上找另一段字串的全部节点指向此节点的fail有多少个。然后常规思路很明显没有办法,于是可以改成一颗fail树,从根节点出发通过fial路径连向每一个结点。查询的是子串,那么势必是长串fail指向子串尾节点,由此尾节点一定是长串中某些结点的fail树上的父亲结点。 一般这种在很短时间内统计个数深度的题目都会考虑到数据结构。联系到原创 2017-08-29 23:26:59 · 239 阅读 · 0 评论 -
BZOJ 3172 [Tjoi2013]单词 - ac自动机
大概是fail树的一道裸应用,首先要注意fail指针的特点,即对于每个trie树上节点fail指针指向的节点与根节点形成的串一定是该节点与根节点之间形成的串的最长后缀,而判断一个串在树上总共出现了几次,其数目等于end指针被fail指针指向或间接指向的个数,即统计fail树上关于每个串end节点的子树中有多少元素,由此建立fail数跑一下节点size即可。 #include #include #原创 2017-09-08 22:46:58 · 190 阅读 · 0 评论