题目 30226

Lyndon 分解

查看题解 ↗GitHub ↗如何评测
题号
30226
时间限制
10000 ms
内存限制
1024 MB
标签
字符串
来源
Library Checker (yosupo06) - lyndon_factorization

【题目描述】

对于字符串 X=X0X1X2⋯X = X _ 0 X _ 1 X _ 2 \cdots,我们用 X[a,b)X[a,b) 表示它的子串 XaXa+1⋯Xb−1X _ a X _ {a+1} \cdots X _ {b-1}。

给定一个长度为 NN 的字符串 S=S0S1S2⋯SN−1S = S _ 0 S _ 1 S _ 2 \cdots S _ {N-1}。请找出一个整数数组 0=a0<a1<a2<…<ak=N0 = a _ 0 \lt a _ 1 \lt a _ 2 \lt \ldots \lt a _ k = N,使得 S[a0,a1),S[a1,a2),…,S[ak−1,ak)S[a _ 0 , a _ 1) , S[a _ 1 , a _ 2) , \ldots , S[a _ {k-1} , a _ k) 是 SS 的 Lyndon 分解。

【输入】

文本
$S$

【输出】

文本
$a _ 0$ $a _ 1$ $a _ 2$ $\cdots$ $a _ k$

【输入样例】

文本
babaabaab

【输出样例】

文本
0 1 3 6 9

【输入样例2】

文本
ababacaca

【输出样例2】

文本
0 8 9

【数据范围】

  • 1≤N≤5000001 \leq N \leq 500000
  • SS 的每个字符均为小写英文字母。

【来源】

Library Checker(yosupo06) lyndon_factorization

数据下载

题目 30226 的公开数据

正在读取文件列表…

常用命令

题目 30226 的 ROJ 命令

以下命令默认使用全局安装的 ROJ Skill,请在终端中直接执行;如果修改过 AGENT_HOME,请将命令中的 ~/.agents 替换为对应目录。