![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
AC自动机
小鱼yn
简介
展开
-
Matrix Matcher(AC自动机/哈希、二维匹配)
题目链接:https://vjudge.net/problem/UVA-11019给定一个N×M矩阵,你的任务是找出一个X×Y模式的出现次数。思路:要匹配模式矩阵,我们可以将模式矩阵中的X个串放入tire树中。容易想到如果我们在矩阵中匹配模式串X[0],我们可以判断后面的X-1行是否匹配。但是如果我们匹配到了X[1]或者X[3],那么……如图...原创 2020-02-13 17:38:14 · 364 阅读 · 0 评论 -
HDU 3065 病毒侵袭持续中(AC自动机记录每个keyword出现的次数)
在AC自动机中,每遍历到一个位置,就遍历所有后缀串,并在他的所有为keyword的后缀串出现的次数上+1然后我就OLE了(Output Limit Exceeded)(最后发现还是因为日常写沙雕错误数组小了,在小改了一种写法之后过了的时候还以为就是输出部分的时间太长了hhh)需要注意的一点是如果题目中的文本串是包含空格的,需要用gets()输入字符串,并且要加上getchar()接受换行...原创 2020-02-11 08:55:04 · 152 阅读 · 3 评论 -
power oj 2806: Clannad(last优化AC自动机+dp)
题目链接:https://www.oj.swust.edu.cn:50443/problem/show/2806大意:把目标串分隔成若干个子串,使这些子串都能与某个keyword对应,求分隔的方案数。思路:如下图,当处理到结点i时,假设存在2~i,4~i,8~i三个前缀(且为keyword),我们可以分别从2、4、8分隔,则右边为1一个keyword,1乘以左边部分分隔的方案数,最后相加就是0...原创 2020-02-10 22:02:09 · 919 阅读 · 0 评论 -
【AC自动机】Keywords Search
ac自动机ac自动机,就是在tire树的基础上,增加一个fail指针,表示当前结点匹配失败时,应该转移到哪个地方继续匹配(而“这个地方”也就是当前匹配成功的子串的最长后缀串的下一个结点),而不是每次都回到起点开始重新匹配。如下图:我们在树上匹配“washer”时,当匹配到1号结点时,发现匹配不上后继结点‘r’,就转移到2号节点继续匹配;2号结点仍然匹配不上后继结点‘r’,就继续转移到3号结点。...原创 2020-02-10 13:49:42 · 236 阅读 · 0 评论