关于后缀间$LCP$的一些公式的证明
关于\(LCP\)有如下两个公式:
- \(LCP~Lemma:\) 对任意 \(1\le i<j<k\le n\) ,存在 \(LCP(i,k)=min\{LCP(i,j),LCP(j,k)\}\) 成立。
- \(LCP~Theorem:\) 对任意 \(i<j\),存在 \(LCP(i,j)=^{~~~~~min}_{i+1 \le k \le j}\{LCP(k-1,k)\}\) 成立。
\(LCP~Lemma\) 的证明:
设 \[p=min\{LCP(i,j),LCP(j,k)\}\]
则有 \[LCP(i,j) \ge p,LCP(j,k) \ge p\]
可得 \[LCP(i,k) \ge p\]
又设 \[LCP(i,k)=q>p\]
则\(Suffix_i\)与\(Suffix_k\)前\(q\)个字符相同。即:\[Suffix_{i,1}=Suffix_{k,1}\] \[Suffix_{i,2}=Suffix_{k,2}\] \[…\] \[Suffix_{i,q}=Suffix_{k,q}\]
而 \[min{LCP(i,j),LCP(j,k)}=p\]
说明 \[Suffix_{i,p+1}!=Suffix_{j,p+1}~~\text{或}~~Suffix_{j,p+1}!=Suffix_{k,p+1}\]
那么一定有如下式子成立 \[Suffix_{i,p+1}!=Suffix_{k,p+1}\]
于是,\(q>p\)不成立,即\[LCP(i,k) \le p\]
于是\[LCP(i,k)=p=min\{LCP(i,j),LCP(j,k)\}~~\text{得证。}\]
\(LCP~Theorem\) 的证明:
由\(LCP~Lemma\)得:\[LCP(i,j)=min\{LCP(i,i+1),LCP(i+1,j)\}\]
又:\[LCP(i+1,j)=min\{LCP(i+1,i+2),LCP(i+2,j)\}\]
经归纳得:\[LCP(i,j)=^{min}_{i<k \le j}\{LCP(k-1,k)\}\text{得证。}\]
关于后缀间$LCP$的一些公式的证明的更多相关文章
- hdu 3518 Boring counting 后缀数组LCP
题目链接 题意:给定长度为n(n <= 1000)的只含小写字母的字符串,问字符串子串不重叠出现最少两次的不同子串个数; input: aaaa ababcabb aaaaaa # output ...
- UVA 11107 Life Forms——(多字符串的最长公共子序列,后缀数组+LCP)
题意: 输入n个序列,求出一个最大长度的字符串,使得它在超过一半的DNA序列中连续出现.如果有多解,按照字典序从小到大输出所有解. 分析:这道题的关键是将多个字符串连接成一个串,方法是用不同的分隔符把 ...
- 一个形式较精细的Strling公式的证明
近日整理书稿,在整理至Strling公式处时,发现当时数学老师所讲的是形式比较精细的一种: Strling公式:\(n!=\sqrt{2\pi n}\left(\dfrac{n}{\mathrm{e} ...
- Cauchy-Binet公式的证明 及 对Denton et al. (2019)的个人注(1)
------------恢复内容开始------------ 据新闻报道数学天才陶哲轩和3个物理学家研究出一个只用特征值就可以计算矩阵特征向量的公式, 我感觉很有趣, 这应该能够应用在很多领域中, 所 ...
- RSA算法原理——(3)RSA加解密过程及公式论证
上期(RSA简介及基础数论知识)为大家介绍了:互质.欧拉函数.欧拉定理.模反元素 这四个数论的知识点,而这四个知识点是理解RSA加密算法的基石,忘了的同学可以快速的回顾一遍. 一.目前常见加密算法简介 ...
- 【bzoj2882】工艺 后缀自动机+STL-map
题目描述 小敏和小燕是一对好朋友. 他们正在玩一种神奇的游戏,叫Minecraft. 他们现在要做一个由方块构成的长条工艺品.但是方块现在是乱的,而且由于机器的要求,他们只能做到把这个工艺品最左边的方 ...
- 一文读懂后缀自动机 Suffix_Automata
原论文(俄文)地址:suffix_automata 原翻译(中文)地址:后缀自动机详解(DZYO的博客) Upd:强推浅显易懂(?)的SAM讲解 后缀自动机 后缀自动机(单词的有向无环图)--是一种强 ...
- 后缀自动机&回文自动机学习笔记
在学了一天其实是边学边摆之后我终于大概$get$后缀自动机了,,,就很感动,于是时隔多年我终于决定再写篇学习笔记辽$QwQ$ $umm$和$FFT$学习笔记一样,这是一篇单纯的$gql$的知识总结博, ...
- 用积分方法求K次方和数列公式
这是我很早以前在高中时发现的一个通用计算K次方和数列公式的方法,很特别的地方是用了微积分中的积分方法.目前我还没有发现有谁提出和我一样的方法,如果哪位读者有相关发现,麻烦告知我. 大家很多人都知道高斯 ...
随机推荐
- UVA 11400"Lighting System Design"
传送门 错误思路 正解 AC代码 参考资料: [1]:https://www.cnblogs.com/Kiraa/p/5510757.html 题意: 现给你一套照明系统,这套照明系统共包含 n 种类 ...
- linux 安装一个中断处理
如果你想实际地"看到"产生的中断, 向硬件设备写不足够; 一个软件处理必须在系统中配 置. 如果 Linux 内核还没有被告知来期待你的中断, 它简单地确认并忽略它. 中断线是一个 ...
- JAVA JVM记录
串行处理器: 适用情况:数据量比较小(100M左右):单处理器下并且对响应时间无要求的应用. 缺点:只能用于小型应用 并行处理器: 适用情况:“对吞吐量有高要求”,多CPU.对应用响应时间无要求的中. ...
- Linux 内核PC/104 和 PC/104+
当前在工业世界中, 2 个总线体系是非常时髦的: PC/104 和 PC/104+. 2 个在 PC-类 的 单板计算机中都是标准的. 2 个标准都是印刷电路板的特殊形式, 包括板互连的电子的/机械的 ...
- dotnet core 黑科技·String
本文来告诉大家 dotnet core 里面使用的黑科技,如何提高String.IndexOf(char)的性能 在Performance Improvements in .NET Core有说道哪些 ...
- Java 从入门到进阶之路(十九)
在之前的文章我们介绍了一下 Java 中的Object,本章我们来看一下 Java 中的包装类. 在 Java 中有八个基本类型:byte,short,int,long,float,double,ch ...
- Jmeter线程组使用详解,持续加压线程组详解
以下罗列的是Jmeter 所有线程组的详解,包括官方自带的线程组,和官方插件的线程组.官方线程组安装,详见之前的文章:https://www.cnblogs.com/beimingyouyuqingc ...
- 聊聊多线程那一些事儿 之 五 async.await深度剖析
hello task,咱们又见面啦!!是不是觉得很熟读的开场白,哈哈你哟这感觉那就对了,说明你已经阅读过了我总结的前面4篇关于task的文章,谢谢支持!感觉不熟悉的也没有关系,在文章末尾我会列出前四 ...
- $CF912E\ Prime\ Gift$ 二分+搜索
正解:二分+搜索 解题报告: 传送门$QwQ$ 因为翻译真的很$umm$所以还是写下题目大意$QwQ$,就说给定一个大小为$n$的素数集合,求出分解后只含这些质数因子的第$K$小整数 考虑先把质数分两 ...
- Windows Live Writer 语法高亮
1.WindowsLiveWriter.CNBlogs.CodeHighlighter.rar 这个插件生成的高亮代码与网页上的一模一样,插入后即可立即显示效果,不过貌似它必须联网才能实时显示效果,因 ...