1 条题解

  • 0
    @ 2025-8-24 22:38:56

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar qbf!
    Never Give Up

    搬运于2025-08-24 22:38:56,当前版本为作者最后更新于2025-02-14 21:30:14,作者可能在搬运后再次修改,您可在原文处查看最新版

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

    以下是正文


    首先有 mid=i=1nainmid=\dfrac{\sum_{i=1}^na_i}n 必定被包含。

    对于每个 ii,我们找到操作 ii 次后重心位置 mid\le mid 且最大的区间,设其重心为 LiL_i,以及重心位置 mid\ge mid 且最小的区间,设其重心为 RiR_i

    我们大胆猜测题目相当于对每个 ii 选择 ci=Lic_i=L_ici=Ric_i=R_i,然后最小化序列 cc 的极差,证明如下:

    假设 LiL_i 对应的区间为 [l,r1][l,r-1]RiR_i 对应的区间为 [l+1,r][l+1,r],那么容易发现 [l+1,r1][l+1,r-1] 必定是 Li+1L_{i+1}Ri+1R_{i+1},假设它是 Li+1L_{i+1}

    • 假设我们选择了 ci=Lic_i=L_ici+1=Li+1c_{i+1}=L_{i+1},那么我们显然可以从 [l,r1][l,r-1] 走到 [l+1,r1][l+1,r-1]
    • 假设我们选择了 ci=Lic_i=L_ici+1=Ri+1c_{i+1}=R_{i+1},那么由于 Li<Li+1L_i<L_{i+1},故我们显然可以把 ci+1c_{i+1} 调整成 Li+1L_{i+1} 而不会使答案更劣。
    • 假设我们选择了 ci=Ric_i=R_ici+1=Ri+1c_{i+1}=R_{i+1},则我们显然可以从 [l+1,r][l+1,r] 走到 [l+2,r][l+2,r]
    • 假设我们选择了 ci=Ric_i=R_ici+1=Li+1c_{i+1}=L_{i+1},则我们显然可以从 [l+1,r][l+1,r] 走到 [l+1,r1][l+1,r-1]

    Ri+1R_{i+1} 的情况是同理的。

    因此我们只需将所有 [Li,Ri][L_i,R_i] 排序,然后从小到大枚举 cc 序列的最小值,维护 cc 序列的最大值即可,时间复杂度 O(nlogn)\mathcal O(n\log n)

    • 1

    信息

    ID
    7799
    时间
    2000ms
    内存
    1096MiB
    难度
    6
    标签
    递交数
    0
    已通过
    0
    上传者