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:

  1. \(u'\)\(u\)的子串;
  2. \(u\triangleright v\)\(u\)严格比\(v\)小,且非前缀;
  3. \(u\sqsubseteq v\)\(u\)\(v\)的前缀;

\(uv\)的后缀\(S\)分为三种情况:

  1. \(S=u'v\)时,

因为 \(u \triangleright u'\);

所以 \(uv\triangleright u'v\);

  1. \(S=v\) 时,

分为两种情况;

1)\(u\triangleright v\), 那么显然 \(uv<v\);

2)\(u\sqsubseteq v\),则\(v=uv'\)

​ 因为有\(v<v'\)

​ 所以\(uv<uv'\Rightarrow uv<v\) ;

  1. \(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} \]

此分解唯一;

性质:

  1. \(S_k\)为最长的\(Lyndon\ suffix\)
  2. \(S_1\)为最长的\(Lyndon\ prefix\)
  3. \(Sk=minsuf(S)\)

好的后面的就不怎么会了,(或者说我只会感性理解,不知道如何理性证明,口胡)

关于证明和求\(Lyndon\ Faetorization\)\(Duval\)算法请参考:Lyndon相关——newbielyx

发现我经常套他博客(滑稽

posted @ 2020-10-07 15:35  zfz04  阅读(215)  评论(0编辑  收藏  举报