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,矛盾 ]

性质

  1. (s_k) 是最长的 ( ext{Lyndon suffix})
  2. (s_1) 是最长的 ( ext{Lyndon prefix})
  3. (s_k=minsuf(s))

Duval 算法

( ext{Duval})

以上是关于Lyndon相关的主要内容,如果未能解决你的问题,请参考以下文章

知识点简单总结——Lyndon分解

Lyndon分解和最小循环表示学习

Lyndon分解

P6114 模板Lyndon 分解

[Lyndon分解] HDU 6761 Minimum Index (2020多校训练)

JSCPC2021Reverse the String(Lyndon 理论)