1 条题解

  • 0
    @ 2025-8-24 22:47:58

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar ix35
    垒球

    搬运于2025-08-24 22:47:58,当前版本为作者最后更新于2023-06-03 23:32:48,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    橙垒球

    定义 Suf(i)Suf(i) 表示(ww 的)以 ii 开头的后缀。

    我们首先将字典序反转,那么最大后缀就变成了最小的不是其他后缀的前缀的后缀。

    定义 1:若 ww 小于它的所有真后缀,则称 ww 是 Lyndon 串;若 vv 是 Lyndon 串且 w=vkvw=v^kv',其中 vv'vv 的前缀,则称 ww 是近似 Lyndon 串;若 vv 是 Lyndon 串且 w=vkw=v^k,则称 ww 是 Necklace。

    定义 2:定义一个后缀 Suf(k)Suf(k) 是 Significant Suffix,当且仅当存在一个 vv 使得 Suf(k)+v=mini(Suf(i)+v)Suf(k)+v=\min_i(Suf(i)+v)


    考虑 Duval 算法求最大后缀,不难发现 ww 的最大后缀就是 Duval 算法第一次运行完 ww 的末尾时对应的近似 Lyndon 串,同时它是 ww 的最长的 Significant Suffix。

    ai=1, ai+1=p>1a_i=1,\ a_{i+1}=p>1,于是:w[1i]w[1\ldots i] 是近似 Lyndon 串,w[pi+1]w[p\ldots i+1] 也是近似 Lyndon 串。

    模拟 Duval 算法可知,w[pi]w[p\ldots i]w[1i]w[1\ldots i] 的前缀(也可以根据 Significant Suffix 的结构发现),同时下一个字符 wip+2w_{i-p+2} 必须大于 wi+1w_{i+1}(否则 ai+1a_{i+1} 也等于 11 了))。

    由于我们现在希望字典序最小,所以最佳的选择就是让 wip+2w_{i-p+2}wi+1w_{i+1} 恰好大 11,而后面的部分 w[ip+3i]w[i-p+3\ldots i] 可以重复前面的模式 w[1ip+2]w[1\ldots i-p+2] 进行循环。由于 w[pi+1]w[p\ldots i+1] 是近似 Lyndon 串,所以把它的最后一个字符增大 11 得到一定就是 Lyndon 串,于是 w[1i]w[1\ldots i] 确实是一个 Lyndon 串的若干次方加上一个前缀,符合近似 Lyndon 串的要求。

    大致结构如下(每种颜色是一个字符,+1+1 表示比对应颜色字符恰好大 11 的字符):

    但是上面的只是一种情况,如果 w[1p1]w[1\ldots p-1] 不能表示成若干个完整的循环,那么就会出问题:Duval 算法加入 wi+1w_{i+1} 后会把前面的完整循环截断,但是并不会恰好截到 pp 这个位置。为了让它恰好截到 pp 这个位置,我们可以让 wp1w_{p-1} 增大 11,这样一来前缀 w[1p1]w[1\ldots p-1] 自成一个 Lyndon 串,截断时自然会把它截去。

    大致结构如下:

    考虑何时会无解:如果 w[1p1]w[1\ldots p-1]w[pi+1]w[p\ldots i+1] 还要短,那么第一个循环都没办法完全填完,这时就会无解(这个结论有另外两种理解:一种是 Duval,由于截断后保留的是前一段 Lyndon 因子的前缀,所以截掉的长度一定大于一半;另一种是 Significant Suffix,w[1,i]w[1,i]w[p,i]w[p,i] 都是 Significant Suffix,因此前者的长度大于后者的两倍)。

    如果我们构造完了后缀 Suf(p)Suf(p),就可以利用上面的方法得到 w[1p1]w[1\ldots p-1],同时由于 w[1p1]w[1\ldots p-1] 的前缀是 w[pi+1]w[p\ldots i+1],所以最小化 ww 就等价于最小化 w[pw]w[p\ldots |w|],优化目标一样,所以可以直接递归后缀 Suf(p)Suf(p)。当然,这和从后往前贪心是等价的。

    时间复杂度为 O(n)O(n)

    • 1

    信息

    ID
    8551
    时间
    1000ms
    内存
    512MiB
    难度
    7
    标签
    递交数
    0
    已通过
    0
    上传者