Lyndon 串相关知识速记

Lyndon Words

一个串为 Lyndon 串当且仅当其为其所有后缀中字典序最小的.

Lyndon 分解:将一个串 w 分解为若干个字典序单调不增的 Lyndon 串 w1,w2,,wk 的拼接,每个 wiwLyndon 因子.

可以证明一个串的 Lyndon 分解是存在且唯一的.

引理 1:若 u,v 均是 Lyndon 串且 u<v,则 uv 也是 Lyndon 串.

分讨易证.


引理 2:Lyndon 分解的最后一个 Lyndon 串为原串的最小后缀.

由 Lyndon 分解的单调性及 Lyndon 串的性质易证.

考虑每个单个字符都是 Lyndon 串,由引理 1 不断合并,可以得到一组合法的 Lyndon 分解;由最小后缀的唯一性,利用引理 2 归纳,可以导出 Lyndon 分解的唯一性.

可以将相同的 Lyndon 串写成幂的形式,即 w=w1p1w2p2wkpk.


Duval 算法:称形如 uku 的串为近似 Lyndon 串,其中 u 为 Lyndon 串,uu 的一个前缀. 增量维护近似 Lyndon 串即可,也是 O(|w|).


Significant Suffix

minsuf(u)u 的最小后缀,记 minsuf(u,v)=minwsuf(u)wv.

对于字符串 w 的后缀 w,若存在字符串 v 使得 wv 为字符串集合 {wv|wsuf(w)} 中字典序最小的元素,则称 ww 的 Significant Suffix. 将字符串 w 的所有 Significant Suffix 组成的集合记做 Λ(w).


引理 3:

v<uv<u2v<<u

v>uv>u2v>>u

两条不等式链中一定恰有一条成立.

证明考虑 v<uvv>uv 中恰有一条成立,反复运用即可.


引理 4:Λ(w) 的元素形如 wipiwkpk,将这个串记做 si.

首先由 Lyndon 串的性质,一定形如 witwi+1pi+1wkpk,再由引理 3 可知当 t(0,ki)N 时都无法取到最值.

(似乎?)可以证明这里的 si 的字典序是单减的,考虑反证

si+1>si,则 si+1>wipisi+1,由引理 3 知 si+1>wi,那么存在 j[i+1,k]Nwi 的某个后缀 wi 使得 wj>wi>wi,与 Lyndon 分解的性质矛盾.


显然有 sΛ(w),s,ss

再由 si 的单调性,si 为 Significant Suffix 的一个必要条件是 sisi+1.

引理 5:sisi+1wisi+1iλ,其中 sλ 为 Duval 算法中第一次比较完字符串末尾时的近似 Lyndon 串.

由 Duval 算法的过程易证.

实际上 iλ 也是 siΛ(w) 的必要条件,于是可以 O(|w|) 求出 Λ(w).


引理 6:对于 u,vΛ(w),若 |u|<|v|,则 2|u||v|,于是 |Λ(w)|=O(logw).

由引理 4 和引理 5,可以简单推出 |si|2|si+1|,而满足|si|2|si+1| 的串只有 O(log|w|) 个,于是显然.

实际运用中往往不需要求出每个后缀是否为 Significant Suffix,只需取 {si||si|2|si+1|} 即可.


__EOF__

本文作者0922-Blog
本文链接https://www.cnblogs.com/0922-Blog/p/18218119/Lyndon.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   wiki0922  阅读(65)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?
点击右上角即可分享
微信分享提示