首页 > 其他分享 >AC 自动机(简单版)

AC 自动机(简单版)

时间:2024-08-15 08:55:58浏览次数:6  
标签:AC 匹配 后缀 tr 只用 简单 自动机

具体讲解看OI-wiki就好了

构建字典图的那个位置,只用理解路径压缩就好了;在路径压缩完了之后,tr[u][i]表示的是状态\(u\)接上一个字符\(i\)所表示的字符串能够与\(Q\)所匹配的最大后缀长度。形式化地,设\(s=u+i\),令\(P\)为\(s\)的后缀集合,tr[u][i]=\(\max(|p|)\),其中\(p∈P\)且存在\(v∈Q\)使得\(p=v\);这部分代码的时间复杂度显然是\(O(n|\sum|)\),其中\(n\)为AC自动机的节点数目,\(\sum\)为字符集

对于匹配部分的代码,\(u\)代表的是\(Q\)的一个状态,且\(u\)为文本串的以第\(i\)个字符结尾的后缀与\(Q\)匹配的能达到最大长度的位置(结合我们上面的tr[u][i]讲解,不难发现代码的维护可以让\(u\)有这一点性质),当前只用统计文本串的以第\(i\)个字符结尾的后缀与所有模式串的匹配情况(因为以\(1\) ~ \(i-1\)结尾的后缀在之前被统计过了),由于\(u\)表示的是最大长度,所以只用从\(u\)开始一直跳fail指针就好了;而由于出现一个模式串出现了多次只用统计一次,所以可以让e[j]=-1,并且当e[j]==-1时就停止循环,因为在之前已经统计过了;这一部分的时间复杂度为\(O(|T|+n)\),因为AC自动机上每个节点最多被遍历一次

效率优化那两块还没学,有时间了学一下

标签:AC,匹配,后缀,tr,只用,简单,自动机
From: https://www.cnblogs.com/dingxingdi/p/18360165

相关文章

  • react in cdn
    index.html:<!doctypehtml><html><head><metacharset="utf-8"/><metaname="viewport"content="width=device-width"/><title>Ariakit</title></head><body>......
  • 外包工作的一些常识与简单报价方法
    项目一定时间内完成某一既定目标的过程都可归类为项目项目本质=时间资源+人力资源2b项目的做法与2c项目有本质上的不同2b更多的是服务于雇主,乙方不应该去代表甲方完成他们应该考虑的2c问题,除非他们主动向你咨询2c项目则是服务于群体,对于细节的要求要高于2b项目,......
  • python系列&deep_study系列:TOCH_npu不适配报错packages/torchaudio/lib/libtorchaudio
    TOCH_npu不适配报错packages/torchaudio/lib/libtorchaudio.so:undefinedsymbol:_ZNK5torch8autograd4Node4nTOCH_npu不适配报错packages/torchaudio/lib/libtorchaudio.so:undefinedsymbol:_ZNK5torch8autograd4Node4n报错:背景:解决办法:TOCH_npu不......
  • SMHC Three SD/MMC host controller (SMHC) interfaces
    SMHCThreeSD/MMChostcontroller(SMHC)interfaces1TheSMHC0controlsthedevicesthatcomplywiththeprotocolSecureDigitalMemory(SDmem-version3.0)2TheSMHC1controlsthedevicethatcomplieswiththeprotocolSecureDigitalI/O(SDIO-version......
  • PDF编辑神器!这四款福昕PDF,让文档编辑变得如此简单
    每天不管是工作还是在学习以及日常当中,遇到的PDF文件量很大并且需要面临的文件转换、编辑和阅读中需要的下划线、批注等等都是很常见的,所以今天借此文章,整理了手里用过的四款好用的福昕PDF工具,大家一起来探讨我们国产老大哥旗下的优质PDF工具:第一款:福昕编辑大师直通车(粘贴到......
  • 成为MySQL DBA后,再看ORACLE数据库(十四、统计信息与执行计划)
    一、前言一条SQL到达数据库内核之后,会解析为一条逻辑执行计划,CBO优化器对逻辑计划进行改写和转换,生成多个物理执行计划。为SQL构造出搜索空间,根据数据的统计信息、基数估计、算子代价模型为搜索空间中的执行计划估算出执行所需要的代价(CPU、内存、网络、I/O等资源消耗),最终选出代......
  • 【Material-UI】Floating Action Button (FAB) 详解:动画效果 (Animation)
    文章目录一、FAB按钮的动画概述1.默认动画效果2.多屏幕横向切换时的动画二、FAB动画效果的实现1.代码示例:跨标签页的FAB动画2.代码解析3.多个FAB的切换三、动画效果的最佳实践四、总结在现代网页设计中,动画不仅提升了用户界面的动态感,还增强了用户的交......
  • ARC125E Snack
    小清新网络流优化题首先不难想到一个trivial的网络流模型,即建立源点\(S\)和汇点\(T\)对于每个食物\(i\),连\(S\toi\),容量为\(A_i\)的边;对于每个人\(j\),连\(j\toT\),容量为\(C_j\)的边;同时所有食物向每个人\(j\)连容量为\(B_j\)的边直接跑Dinic复杂度显然爆......
  • 打靶记录10——hacksudo---Thor
    靶机:https://download.vulnhub.com/hacksudo/hacksudo---Thor.zip难度:中目标:取得root权限+flag涉及攻击方法:主机发现端口扫描Web目录爬取开源源码泄露默认账号密码SQL注入破壳漏洞GTFOBins提权主机发现:sudoarp-scan-l端口扫描和服务发现sudonmap-p-......
  • CF830E Perpetual Motion Machine
    一堆CornnerCase的大分讨,我们全队一边写一边补情况,WA了五发终于干过去了首先当图中存在某个环时,我们只要给环上的所有点赋值为\(1\)即可;又因为图连通所以只要考虑树的情况即可考虑如果存在一个度数\(\ge4\)的点,将其赋值为\(2\)并将其周围的四个点赋值为\(1\)即可......