AC自动机
HT008_123
家人们点点关注叭
展开
-
AC自动机
2018-4-2重新编辑 作为一个蒟蒻的我,终于学习了AC自动机。 其实之前我以为AC自动机是自动AC的呢!(手动滑稽) 其实AC自动机啊,是字符串匹配中的多匹配问题的基础2333 举个栗子 母串 hychycxyxy 三个匹配串 hyc chy cxyy 有两个是母串的子串2333 如果匹配串只有一个的话,那就用KMP喽,可是这个是很多个匹配串咋办呢 那就得请出炒鸡厉害...原创 2017-04-16 10:58:13 · 860 阅读 · 0 评论 -
[POI2000] 病毒
题目描述: qwq. 题目分析: 把病毒串构建一个Ac 自动机 然后我们在Ac自动机上DFS,如果能够DFS出一个无病毒环,即成功! 题目链接: Luogu 2444 Ac 代码: #include <cstdio> #include <iostream> #include <cstring> #include <string> ...原创 2018-04-02 16:42:21 · 342 阅读 · 0 评论 -
[NOI2011] 阿狸的打字机
题目描述: 一道很神的AC自动机好题 题目分析: 对于AC自动机中的每一个节点,如果节点A的fail指向节点B 就会发现B对应的字符串一定在A对应的字符串中出现 联系一下fail指针的作用 利用这个性质 题目就变为了 Y有多少fail直接或者间接的指向X的结束位置 考虑到一个节点有且只有一个fail,那么由fial指针构成的图,就叫做fail树 现在询问变成了,在fail树中,...原创 2018-04-03 08:23:18 · 208 阅读 · 0 评论 -
[TJOI2013] 单词
题目描述: qwq. 题目分析: 对fail指针的理解还是不够哇qwq fail[u]所代表的串,其实是u所代表的串的后缀. 而后缀可以表示出所有的子串 每个节点初始值为1,代表前缀出现过一次 从 u->fail[u]连一条边,那么fail[u]这个串的出现的次数,就是它的fail树子树和 用倒叙BFS序进行统计 题目链接: BZOJ 3172 Luogu 3966...原创 2018-04-03 15:23:37 · 160 阅读 · 0 评论 -
[JSOI2007] 文本生成器
题目描述: qwq. 题目分析: 惊了,居然可以在AC自动鸡上跑DP(大雾 直接算好像比较困难,所以考虑先算不可读的串的个数,再拿总串数去减。 不可读的串的数量就是在AC自动机上走M步而不经过结尾节点(包括结尾点和fail指向结尾点的节点)的路径条数。 f[i][j]表示路径长度为i在自动鸡上j节点的方案数 那么f[i][j]可以转移f[i+1][son[j][k]] 最后算一...原创 2018-04-03 16:17:53 · 403 阅读 · 0 评论