题目描述
学生会正在为体育节的接力赛做准备。学生会由 n个成员组成,他们将在比赛中一个一个地跑,第 个人的速度是 ,第 i次接力会产生一个差异值 ,它的值是前 个参与接力赛的人的速度最大值与最小值的差,也就是说,我们假设第个参与比赛的人的速度是 ,那么 。现在你可以任意安排参加比赛的人的顺序,一个人只能参与一次,且每个人都必须参与,请你求出的最小值。
题解
首先考虑插入数字的影响:
- 如果是区间,那么新增
- 如果是区间,那么新增
- 如果都不是,那么新增
那么显然,每插入一个区间最大值,新增极差的大小都会,从贪心的角度考虑,我们应当尽可能晚的插入区间最大值。所以我们可以先对所有的排序。
设表示区间的答案(和的最小值)。
考虑一段区间的状态:显然可以由(表示的贡献):
两个状态转移而来。同时由于我们对整个序列进行过排序,那么可以得知:
那么可以直接跑一个区间,计算答案即可。