博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[学习笔记]后缀系列总结
阅读量:4314 次
发布时间:2019-06-06

本文共 541 字,大约阅读时间需要 1 分钟。

后缀树

后缀插到trie树里。 把许多节点压到一起。节点数量是O(n)的 节点可以记录原串的起始终止位置。 可以查询子串。

性质: LCA深度为LCP长度 某个点的子树叶子个数为点所代表的子串的出现次数。 按字典序dfs就是后缀排序结果。

后缀数组

求法:倍增,基于基数排序 对于SA LCP(i,j)=min(hei[i]) 可以枚举一个k,去掉hei<k的,把SA数组根据Hei分成一些块。 块内的两两之间LCP的长度都大于等于k k可以枚举,或者二分。

后缀自动机

核心: 1.Right集合 2.Parent树的联系 3

学习思考: 后缀树 反串上建SAM的Parent树就是后缀树。 trie树建后缀自动机

 

 

**求两个串本质不同的公共子串个数

#号连接,然后跑后缀数组

SA序列,记录所属的字符串s1,或者s2

排列成形如:

s1

s2

s2

s1

s2

s1

...

新出现的公共子串一定是s1,s2之间的height(例如s1,s2后s2,s1)

然后考虑再次出现的时候去掉之前出现过的。

发现就是之前上一次s1,s2的LCP位置取min过来的长度,减去即可。

 

转载于:https://www.cnblogs.com/Miracevin/p/10105555.html

你可能感兴趣的文章
靶形数独【贪心+深搜】
查看>>
读大道至简第三章有感
查看>>
BeforeFieldInit的小叙
查看>>
TeamViewer的下载地址,低调低调
查看>>
005 线程ID和线程的优先级
查看>>
POJ 3067 Japan (树状数组 && 控制变量)
查看>>
python基础条件和循环
查看>>
an exciting trip
查看>>
【转】xmind8 破解激活教程
查看>>
Mysql用命令方式启动服务
查看>>
【贪心】codeforces A. Heidi and Library (easy)
查看>>
【leetcode】lower_bound
查看>>
跨站请求伪造(CSRF)
查看>>
EF Code First数据库映射规则及配置
查看>>
.Net StackFrame
查看>>
Qt 学习之路:视图选择 (QItemSelectionModel)
查看>>
QStyleFactory类参考
查看>>
linux 获取系统屏幕分辨率
查看>>
MySQL 数据库常用命令小结
查看>>
log4net使用记录
查看>>