关于后缀间$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{得证。}$$
任何一个伟大的思想,都有一个微不足道的开始。
-
三年OI一场空,三道神题见祖宗
-
竹杖芒鞋轻胜马,谁怕?一蓑烟雨任平生。
-
回首向来萧瑟处,归去,也无风雨也无晴。