zoukankan      html  css  js  c++  java
  • AC自动机fail树小结

    建议大家学过AC自动机之后再来看这篇小结

    fail树就是讲fail指针看做一条边连成的树形结构

    fail指针在AC自动机中的含义是指以x为结尾的后缀在其他模式串中所能匹配的最长前缀的长度

    所以在模式串中一定有sq[1~fa[x]]为sk[1~x]的子串

    这个性质可以解决一些问题:

    单词

    显然,我们在插入时在沿着tire树走时,将遍历到的所有节点的val++

    最后我们的答案就是这个单词的结尾在fail树中的所有子树的val之和,因为之前的性质,

    这个单词的fail树的子树节点中的所有节点,都意味着该串在其他模式串中的出现

    我们并不用将fail树都建出来,然后统计

    因为我们其实在求fail指针的过程中就已经有了fail树的dfs序,即每个节点入队(出队)的序列

    沿着这个序列反向遍历统计一下答案就好了

    未完(...)

  • 相关阅读:
    学习进度四
    每日进度二
    每日进度一
    学习进度三
    学习进度二
    安全性战术
    Linux 常用命令
    python测试框架之pytest
    Python 列表生成式和字典生成式
    使用Python在Windows 10上显示通知信息
  • 原文地址:https://www.cnblogs.com/logeadd/p/9815722.html
Copyright © 2011-2022 走看看