关于后缀自动机的构造
来源:互联网 发布:关闭135 139 445端口 编辑:程序博客网 时间:2024/05/22 12:39
考虑构建一个后缀自动机(Suffix Automaton)
设当前已构建的字符串为T, 要添加新字符x, T的长度为L
设p为从init输入串T所到的状态 即满足Right(p) = {L}的结点p,
令np表示从init输入串Tx所到的状态
Vp为p在parent树的祖先{V1, V2, ......, Vk = root}中第一个有x的转移的状态
q = trans(Vp, x)
分三种情况
<1> 并不存在Vp结点, 则par(np) = root
<2>满足Max(q) = Max(Vp) + 1, 则par(np) = q
<3>Max(q) > Max(Vp) + 1
新建一个节点nq, 使Right(nq) = Right(q) U Right(np) = Right(q) U {L + 1}
则 Max(nq) = Max(Vp) + 1
par(nq) = par(q) , par(q) = par(np) = nq
从新状态nq出去的转移同q出去的转移
即 trans(nq, c) = trans(q, c)
同时{Vp, ......, Vk = root}中转移到q的状态应转移到nq
trans(Vp...k, x) == q ? trans(Vp...k, x) = nq : ;
注: SAM构造的线性性、正确性证明以及运用详见《2012年noi冬令营陈立杰讲稿》
0 0
- 关于后缀自动机的构造
- 后缀自动机的构造
- 后缀自动机的构造
- 关于后缀自动机的一点题目
- 后缀自动机构造过程演示
- 后缀自动机与线性构造后缀树
- bzoj3238后缀自动机-线性构造后缀树
- hdu 5008 Boring String Problem(后缀自动机构造后缀树)
- 【BZOJ 3238】[Ahoi2013]差异 后缀自动机构造后缀树
- 【后缀自动机-后缀树上的维护】hdu4641
- 后缀排序 后缀自动机的应用
- 后缀自动机的自我消化
- 后缀自动机的程序实现
- 后缀自动机实现的例子
- 后缀自动机的直观理解
- 后缀自动机
- 后缀自动机
- 后缀自动机
- 单元测试
- 设计原则
- HDU-5826-physics-数学推导
- 获取Spring的ApplicationContext的方法
- Linux-进程笔记
- 关于后缀自动机的构造
- Android Studio 导入项目, Gradle 太慢太慢。我已经用了VPN啊!!!!
- HDU1950:Bridging signals
- 日志查询系统-----Kibana+Logstash+Elasticsearch
- java 文件IO流
- android 艺术开发探索之线程和线程池
- java设计模式——外观模式(Facade Pattern)
- 可能MysqlDB的一个BUG产生的warning 2016.08.12回顾
- iOS捕获异常,常用的异常处理方法