区间分段问题的一点思考 / P14840 [THUPC 2026 初赛] 宝石分组
很经典的区间分段问题,我们从以下几个角度入手:
- 连续区间。
- 区间长度特性。
- 利用调整法规约成简单形式。
- 转化贡献代表元。
- ......
总之这种题目必定可以转化为上面几种条件之一,本题也是如此。
首先注意到答案取模,这很有可能就是题目在提示我们本题有严格唯一确定最优答案的方法,我们不应该过度的往 DP 这种局部最优性方法上思考。
比较好观察到的一个性质是,分组一定是排序后连续区间,不然通过调整法交换两组中非有序元素一定不劣。
发现一个很关键的事情是,随着 \(a\) 的值逐渐增大,我的区间长度必定不增,具体证明考虑令小区间和为 \(s1\),大区间和为 \(s2\),显然新增加的元素对 \(s1, s2\) 的影响可以看作 eps,那么容易列式证明大小关系。
考虑使用增量法观察出一些事情,设目前总和为 \(s\),长度为 \(l\),新增加进来的数为 \(x\),则贡献变为:
做差相减一下:
显然只需要判断 \(x^2l^2 (l + 1)^2 + s^2(l + 1)^2 - x^2 l^2 - s^2 l^2 - 2xs l^2\) 与 \(0\) 的大小关系即可。
得到:
注意到该式是二次函数式,可以得到其判别式为:
由于变量均为正数,\(x^2\) 前面的系数始终为正,则无论 \(x, s, l\) 取何值,该式值总是 \(> 0\),则得到不将 \(x\) 加入更优。
我们因此得到一个惊天地泣鬼神的结论:区间长度实质上越短越好,我们恨不得将每个区间长度全部设为 \(l\)。但是不可能每个区间都满足这样的条件,最后可能需要把几个 \(l\) 给拆散,拆成若干个 \(r\) 和一个长度在 \([l, r]\) 内的区间,根据以上结论,此时 \(l\) 最多,\(r\) 最少时最优,可以利用数学大计算算出此时 \(l, r\) 分别有多少个。
接下来的问题只有一个,就是 \(l, r\) 和剩下区间长度如何分配,根据上述结论,区间长度不增,所以前面放 \(r\) 后面放 \(l\) 即可。

浙公网安备 33010602011771号