首页 > 其他分享 >AC自动机

AC自动机

时间:2022-10-07 14:13:49浏览次数:43  
标签:AC Trie 失配 自动机 Border 字典

背景

给出一个字典,和若干询问:多少个字典串在询问串中出现过。
即单串与多串的匹配问题。

AC自动机

AC 自动机基于 Trie,将 KMP 的 Border 概念推广到多模式串上。
AC 自动机是一种离线型数据结构,即不支持增量添加新的字符串。
AC 自动机常用于将字符串询问类的问题进行离线处理,也经常与各种 DP 结合,或是补全成 Trie 图。

border概念的推广

推广到两个串:对于两个串 S 和 T,相等的 p 长度的 S 的后缀和 T 的
前缀称为一个 border。
推广到一个字典:对于串 S 和一个字典 D,相等的 p 长度的 S 的后缀,
和任意一个字典串 T 的前缀称为一个 border。
失配(Fail)指针: 对于 Trie 中的每一个节点(即某个字典串的前缀),
它与 Trie 中所有串的最大 Border 即为失配指针。

失配指针

类似与 KMP 求 Border,任意节点的 Border 长度减一,一定是父节点的
Border。因此可以通过遍历父节点的失配指针链来求解。
因此在求失配指针的时候,一定要按长度从小到大来求,即 bfs。

image

image
image
image

image

复杂度分析

类似于 KMP 的势能分析方法,势能总量等于 Trie 的节点总数,因此复
杂度为线性的。

模板

标签:AC,Trie,失配,自动机,Border,字典
From: https://www.cnblogs.com/hh--boke/p/16759636.html

相关文章

  • 2022.10.7 - Mac 安装nvm记录
    Mac安装nvm记录参照原文:Mac安装使用nvm---解决安装443问题【没有废话-清爽版】M1芯片Mac搭建前端开发环境mac安装nvm及换源及node安装切换NVM官网在Mac(M1芯片)安装......
  • 机器学习模型的集成方法总结:Bagging, Boosting, Stacking, Voting, Blending
    机器学习是人工智能的一个分支领域,致力于构建自动学习和自适应的系统,它利用统计模型来可视化、分析和预测数据。一个通用的机器学习模型包括一个数据集(用于训练模型)和一......
  • [Python学习笔记]使用Python编写自动化程序处理锂电池保护板数据 - Preface
    因为工作需要,目前要开发一款自动化处理数据的程序。该程序的功能是自动读取锂电池BMS保护板数据excel,然后分析数据,来判断保护板中可能存在问题的电芯,并显示在交互界面上。......
  • C4D 2023插件:Arnold for mac(C4D S2023阿诺德渲染器)
     Arnold是一款先进的蒙特卡洛光线追踪渲染器,专为动画长度和视觉效果的需求而打造。C4DtoA4.4.0使用Arnold7.1.3.1 ,是一个功能版本,带来了对Cinema4D2023中OCI......
  • ACM模拟赛10.3
    ACM模拟赛10.3第一场还算是正式的ACM模拟赛,毛子营的题目,10道题场上只会2道,害怕。BDivideandConquer题意\(n\)个点\(m\)条边的无向图,你要找到一个点\(x\),使得所......
  • fibnacci数列
    fibnacci数列概念斐波那契数列(Fibonaccisequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(LeonardoFibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这......
  • mac emacs init
    Defaultconfig$vi~/.emacs.d/init.el;使用command键作为meta键;;;Iprefercmdkeyformeta(setqmac-option-key-is-metanilmac-command-key-is-metat......
  • 【Linux】基于Ubuntu搭建Apache + Tomcat+ Memcached集群
    这又是一篇来自2015年的文章,当时因为要解决一个项目Session共享问题,需要搭建与生产环境一样的环境进行验证。同时,根据领导要求需要将生产环境做成水平扩展集群,因此也在本环......
  • 摆脱鼠标系列 Trigger Suggest 快捷键 改成 Shift + Space
    摆脱鼠标系列TriggerSuggest快捷键改成Shift+Space看marp插件的时候,发现用ctrl+space自动提示,但是我这里是输入法......
  • 目前最强性能的人脸检测算法(Wider Face Dataset)
           最强性能的人脸检测今天我们不说计算机视觉基础知识,接下来说说AAAI2019一篇比较新颖的Paper,其是中科院自动化所和京东AI研究院联合的结果,在WiderFace......