~~希望~~大家看懂了文章。其实总结一下,你只需要知道 AC 自动机的板子很好背就行啦。
-时间复杂度:定义 $|s_i|$ 是模板串的长度, $|S|$ 是文本串的长度, $|\Sigma|$ 是字符集的大小(一般为 26)。如果连了 trie 图,时间复杂度就是 $\Theta(\sum|S_i|+n|\Sigma|+|S|)$ ,其中 $n$ 是 AC 自动机中结点的数目,并且最大可以达到 $\Theta(\sum|s_i|)$ 。如果不连 trie 图,并且在构建 fail 指针的时候避免遍历到空儿子,时间复杂度就是 $O(\sum|s_i|+|S|)$ 。
+时间复杂度:定义 $|s_i|$ 是模板串的长度, $|S|$ 是文本串的长度, $|\Sigma|$ 是字符集的大小(常数,一般为 26)。如果连了 trie 图,时间复杂度就是 $\Theta(\sum|S_i|+n|\Sigma|+|S|)$ ,其中 $n$ 是 AC 自动机中结点的数目,并且最大可以达到 $\Theta(\sum|s_i|)$ 。如果不连 trie 图,并且在构建 fail 指针的时候避免遍历到空儿子,时间复杂度就是 $O(\sum|s_i|+|S|)$ 。
???+ note "模板 1"
[LuoguP3808【模板】AC 自动机(简单版)](https://www.luogu.org/problemnew/show/P3808)