首页 > 其他分享 >acam 小记

acam 小记

时间:2024-09-28 16:49:46浏览次数:3  
标签:trie acam kmp fail 树上 节点 小记

acam 作为多模匹配算法,很多东西与 kmp 相同,另外增添了 fail 树上操作的关键性质。

朴素 acam 就是 trie 树,fail 指针就是在当前 node 找一个后缀,使得在其他串存在一个前缀是这个后缀(类似 kmp)。

trie 图,就是简单优化了这个"树上乱跳"的过程,补全每个节点的儿子,类似于路径压缩。

其实 trie 图保证了走文本串时,一定可以找到一个对应节点(就是正常 u = tr[u][i])。


一个关键部分是 acam 上 DP。

也非常好理解,就是把 \(u\) 以及其他必要部分塞进状态里,用有效节点避免了状压。


另一个关键部分是 fail 树。执行以下指令

for (; u; u = fail[u]) {...}

放在 fail 树上就是不断跳祖先。于是可能可以用图论数据结构进行优化。

标签:trie,acam,kmp,fail,树上,节点,小记
From: https://www.cnblogs.com/liangbowen/p/18438144

相关文章

  • 斜优小记
    一个启发是,对于一个\(i\)的两个转移\(j,k\),比较\(j\)与\(k\)的转移优劣。可以用斜率优化的场景:对比后可以分拆出\(slope(j,k)\le\texttt{只和i相关的一些东西}\)的形式。例如P3195,首先写出转移方程\(dp_i=\min\limits_{0\lej<i}\{dp_j+(s_i-s_j+i-j-1-L)^2\}\)比......
  • 9.9课堂感想小记Note
    第二个教学周周一艳阳高照得知无法换课SoSad~言归正传这节课还是有一些小收获首先老师带领我们注册了博客(很古老的平台接着老师向我们展示了巧用搜索引擎使用FILETYPE\SITE和INTITLE指令查询特定格式的文件eg.搜索内容➕filetype:doc/ppt..现在很少用电脑浏览器搜索资......
  • 技巧小记
    跳跃带修可以考虑\(\sqrt{n}\)分块维护若是跳次数超多可以考虑倍增维护很多有循环/置换环的东西可以把一次转换看成“跳跃”dp抽象网格图抽象:把状态看做网格图上的点,观察性质分层dp抽象:把每层画出,把转移边画出,看是否能通过平移等做内联dp子集枚举for(S=(1<<n......
  • 图的连通性小记
    前言DFS树无向图DFS树定义:DFS树是在图或树结构上进行深度优先搜索时形成的树。在DFS过程中,从一个顶点开始,尽可能深地搜索图的分支,直到达到一个没有未访问邻居的顶点,然后回溯到上一个顶点继续搜索。从点\(r\)开始搜索,每次进入一个点\(i\)对应的边\((fa_i,i)\)为树......
  • 小董小记——9.10教师节人工智能教育技术学小记(1)
    下午蒙蒙小雨,也抵挡不住我们开拓知识技能的热情。我们也算是使用博客园的初学者,也在逐步学会通过使用博客园发布自己的一些小随笔,生活学习的小记录。说实话,我在没使用过博客园之前,都是从电视剧里面或者别人口中听来的,所以,我一直以为它是微博的一个分身。结果,并不是。多学习一项技......
  • 24.9.10教师节课堂小记
    一、符号1、使用“—”符号在关键词的前面使用减号,也就意味着在查询结果中不能出现该关键词,“关键词A+空格+减号+关键词B”2、使用FILETYPE\SITE和INTITLE指令:使用filetype指令可以查询特定格式的文件,比如doc\txt\ppt\pdf,搜索格式为:关键词+空格+filetype:+文件格式使用site指......
  • 组合数小记
    前言计数的基本原理考虑一个集合:\(S\),求\(|S|\)。加法原理:\(S=S_1\cupS_2,|S|=|S_1|+|S_2|\)。乘法原理:\(|{(a,b)|a\inS_1,b\inS_2}|=|s_1||s_2|\)更浅显的说当两件事情无关时为加法,当前一件的结果影响后面时用乘法。组合数基本公式及衍生公式排列与组合排列......
  • 策略模式的小记
    策略模式策略模式支付系统【场景再现】硬编码完成不同的支付策略使用策略模式,对比不同(1)支付策略接口(2)具体的支付策略类(3)上下文(4)客户端(5)小结策略模式定义:策略模式是一种行为设计模式,在运行时改变对象的行为。目的:定义一系列算法,把它们一个个封装起来,并且使它们可相......
  • Apache Guacamole 安装及配置VNC远程桌面控制
    文章目录官网简介支持多种协议无插件浏览器访问配置和管理应用场景Podman部署ApacheGuacamole拉取docker镜像docker-compose.yml部署PostgreSQL生成initdb.sql脚本部署guacamoleGuacamole基本用法配置VNC连接Mac电脑开启自带的VNC服务官网https://......
  • 数位DP小记
    1.基础1.1.问题数位DP解决的一般都是和数字相关的计数问题,常见的有\(l\simr\)中有多少数符合某个关于数位的条件。对于这种问题,我们都是先用前缀和转化成小于等于某个数的问题。下面以P2602[ZJOI2010]数字计数为模板题。1.2记忆化搜索我们先枚举每个数码。我们......