AC fail automata constructor pointer is not based on analysis of potential

    AC自动机的fail指针构造是均摊O(n),但是某些不良心出题人可能会去卡它(如给你个trie,构造fail指针)。
    所以考虑一种不基于势能分析的做法。
    对于每个节点,用一个quick[]来记录,对应节点的fail指针所在的位置,然后直接更新即可。
    现在考虑怎样从根将quick指针传递到儿子。
    如果当前节点不存再这个儿子,那么从父亲那里获得指针,将这个儿子设为那个指针。这样,构造都是O(n*sigma字符集)。
Published 51 original articles · won praise 6 · views 20000 +

Guess you like

Origin blog.csdn.net/qq_35776579/article/details/76695448