Lyndon相关
Posted newbielyx
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Lyndon相关相关的知识,希望对你有一定的参考价值。
Lyndon Words
定义
对于字符串 (S),若 (S) 的最小后缀为其本身,那么称 (S) 为 ( ext{Lyndon}) 串(( ext{Lyndon Words}))
即 (S in L),(egin{cases} S是严格最小循环 \ minsuf(s)=s end{cases})。
性质
(Border(S)=varnothing)
推论
如果 (u,v in L, u prec vRightarrow uv in L)。
(mathcal{Proof.})
(1) s=u'v,u riangleleft u' Rightarrow uv < u'v)
(2) ext{to prove uv<v})
? (2.1) u riangleleft v Rightarrow uv<v)
? (2.2) u sqsubseteq v Rightarrow v=uv',v<v' Leftrightarrow uv<uv' Leftrightarrow uv<v)
(3) S=v',uv<v<v')
(Q.E.D.)
PS: ( riangleleft):严格小于,且不是前缀,必有一个字母不同,(sqsubseteq):前缀
(ex.) 如果 (u,vin L,u<v Rightarrow u^av^bin L)
显然。
Lyndon 分解 (Lyndon Factorization)
任意字符串 (s) 可以分解为 (s=s_1s_2s_3dots s_k),其中 (s_i) 是 ( ext{Lyndon}) 串,(s_i ge s_{i+1}),且这种分解方法是唯一的。
(mathcal{Proof.})
先证存在性:
初始时每段一个字符,然后不断地将相邻两段 (s_i<s_{i+1}) 合并。
再证唯一性:
若有两种方案,取第一次不同的位置,设 (|s_i| > |s_i'|),令 (s_i=s_i's_{i+1}' dots s_k'pre(s_{k+1}',l)),则
[ s_i<pre(s_{k+1}',l)le s_{k+1}' le s_i' < s_i,矛盾 ]
性质
- (s_k) 是最长的 ( ext{Lyndon suffix})
- (s_1) 是最长的 ( ext{Lyndon prefix})
- (s_k=minsuf(s))
Duval 算法
( ext{Duval})
以上是关于Lyndon相关的主要内容,如果未能解决你的问题,请参考以下文章