Lyndon Word

Lyndon Word

  • 以下简称 L L L
  • 定义:一个串是 L L L 串,当且仅当它是这个串的最小表示(最小后缀)

性质:

  • S , T S,T S,T 均为 L L L 串,且 S < T S<T S<T,那么 S + T S+T S+T L L L
  • L L L 串的前缀也是 L L L
  • 将最后一个字符变大, L L L 串还是 L L L
  • 任意串 S S S,可以划分为 S = s 1 + s 2 + ⋯ + s k S=s_1+s_2+\dots+s_k S=s1+s2++sk,满足 s i s_i si L L L 串,且 s i ≥ s i + 1 s_i\ge s_{i+1} sisi+1

求法:

后缀数组每次选一个后缀到结尾或第一个遇到的后缀,复杂度 O ( n log ⁡ n ) O(n\log n) O(nlogn)
Duval Algorithm:
设当前处理到 i i i [ 1 , i ) [1,i) [1,i) 已经划分好, [ i , k ) [i,k) [i,k) 的串形如 t + t + ⋯ + t 1 t+t+\dots+t_1 t+t++t1 t 1 t_1 t1 t t t 的前缀,可空
j = k − ∣ t ∣ j=k-|t| j=kt,讨论:
S j = S k S_j=S_k Sj=Sk 那么循环节可以继续
S j < S k S_j<S_k Sj<Sk,那么 t + t + ⋯ + t + t 1 + S k t+t+\dots +t+t_1+S_k t+t++t+t1+Sk 是个 L L L
S j > S k S_j>S_k Sj>Sk,那么若干个 t t t L L L 串,将 i i i 置于 t 1 t_1 t1 的开头

i i i 只往右移, k k k 左移的距离不超过 i i i 右移的距离,复杂度 O ( n ) O(n) O(n) c o d e code code

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FSYo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值