码迷,mamicode.com
首页 > 其他好文 > 详细

强势图解AC自动机

时间:2018-12-13 14:59:36      阅读:258      评论:0      收藏:0      [点我收藏+]

标签:模板   str   bsp   假设   字符   上进   abc   fail   详细   


本篇文章主要详细介绍$AC$自动机的$fail$指针:

如果有什么不完善的地方,请联系我$qwq$


前置知识:

1、建议学一下$kmp$算法

2、$Trie$


导入:

AC自动机是用来解决多模板匹配问题的,但是,如果就单纯的把每个模板串拼接在一起,或者单个单个匹配的话,肯定是会超时的,而它的思想是把所有的模式串建立一颗$Trie$,然后用文本串来匹配,那么我们就必须在这颗$Trie$树上进行快速跳转来优化,于是,AC自动机就诞生了


重点:fail指针到底是什么?

我们先来思考一个问题,加入我们按照上面的思想,把每一个模式串建立一颗字典树,那么怎样才能在这个模板串失配后快速跳到下一个有可能成功匹配的字符串来匹配呢?我们举个例子:假设文本串是$bcde$,模式串有两个,分别为$abc$和$bcd$,我们为两个模式串建一颗$Trie$,如下图:

 

强势图解AC自动机

标签:模板   str   bsp   假设   字符   上进   abc   fail   详细   

原文地址:https://www.cnblogs.com/yexinqwq/p/10113896.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!