强势图解AC自动机

Posted yexinqwq

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了强势图解AC自动机相关的知识,希望对你有一定的参考价值。


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

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


前置知识:

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

2、$Trie$


导入:

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


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

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

 

以上是关于强势图解AC自动机的主要内容,如果未能解决你的问题,请参考以下文章

强势图解回文自动机

hdu 5955 Guessing the Dice Roll AC自动机+高斯消元

腾达ac6怎么设置

AC自动机

AC自动机(AC automation)

AC自动机基础