lyndon 分解
lyndon 串(简单串):最小后缀是本身的串
lyndon 分解:原串拆分成若干个 lyndon 串 \(s_1,s_2\cdots\),满足 \(s_1\ge s_2\ge \cdots\),一个确定串的 lyndon 分解唯一。
- Duval 算法:线性处理 lyndon 分解,思路是找循环串,遇到不匹配两种情况处理,并不难理解。
lyndon 分解与最小表示法:倍长原字符串,找到跨过 \(n\) 的一个 lyndon 串,其起点就是最小表示法的起点。
- 最小表示法为自己与最小后缀是自己是等价的。
每个前缀的最小后缀:在 Duval 的基础上记录一下每个位置 \(j\) 的最小后缀开头 \(f_j\),循环串满足 \(j-f_j=k-f_k\)。
大毒瘤题。
题意非常清新,但是过几秒就发现屁思路没有,瞄了一眼题解大分讨。
累了,摸了(
$$\texttt{Dirty Deeds Done Dirt Cheap}$$