Lyndon words学习笔记
Lyndon words
定义:
对于一个字符串\(S\),若\(S\)的最小后缀是其本身,则\(S\)为一个\(lyndon\)串;
记为\(S\in L\);
即:
\[S \in L
\begin{cases}
minsuf(S)=S\\
S为其本身的\mathbf{严格}最小循环
\end{cases}
\]
所以对于\(lyndon\ words\)有一个性质:
\[Border(S)=\varnothing
\]
否则就不满足定义;
推论:
\(if\quad u,v\in L\quad and\quad u<v\)
\(\quad then \quad uv\in L\)
证明:理性证明很难受,还是感性理解比较好,
ps:
- \(u'\)为\(u\)的子串;
- \(u\triangleright v\) :\(u\)严格比\(v\)小,且非前缀;
- \(u\sqsubseteq v\) :\(u\)为\(v\)的前缀;
按\(uv\)的后缀\(S\)分为三种情况:
- 当\(S=u'v\)时,
因为 \(u \triangleright u'\);
所以 \(uv\triangleright u'v\);
- \(S=v\) 时,
分为两种情况;
1)\(u\triangleright v\), 那么显然 \(uv<v\);
2)\(u\sqsubseteq v\),则\(v=uv'\)
因为有\(v<v'\)
所以\(uv<uv'\Rightarrow uv<v\) ;
- \(S=v'\)时,
有\(uv<v<v'\);
综上,对于三种情况都有\(uv<S\);
故\(uv\in L\);
证毕.
这样的话,就可以再推导出\(u^av^b\in L\);
(ps:\(u^a\not\in L\))
\(Lyndon\)分解(\(Lyndon\ Faetorization\))
定义:
对于一个串的\(Lyndon\ Faetorization\)记为\(CFL(S)\);
则
\[CFL(S)=S_1,S_2...S_k
\begin{cases}
1. \quad S_i\in L\\
2. \quad S_1\ge S_2 \ge ...\ge S_k
\end{cases}
\]
此分解唯一;
性质:
- \(S_k\)为最长的\(Lyndon\ suffix\)
- \(S_1\)为最长的\(Lyndon\ prefix\)
- \(Sk=minsuf(S)\)
好的后面的就不怎么会了,(或者说我只会感性理解,不知道如何理性证明,口胡)
关于证明和求\(Lyndon\ Faetorization\)的\(Duval\)算法请参考:Lyndon相关——newbielyx
发现我经常套他博客(滑稽