P8424 题解

· · 题解

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

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

我们大胆猜测题目相当于对每个 i 选择 c_i=L_ic_i=R_i,然后最小化序列 c 的极差,证明如下:

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

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