信息
- ID
- 1584
- 时间
- 2000ms
- 内存
- 1024MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者
只考虑最终要落入区间的那些数。
若把 A3,…,AN 排序,选定的 M 个数一定可以替换为排序后某个连续的长度为 M 的窗口而不增大代价:窗口内部的数本来就位于最小值和最大值之间,决定代价的只有两端。对于窗口 [l,r],把左端纳入下界所需的代价是 max(0,A1−Al),把右端纳入上界所需的代价是 max(0,Ar−A2),二者之和就是这个窗口的最小代价。
枚举所有满足 r=l+M−1 的窗口并取上述代价的最小值即可。
排序需要 O(NlogN) 时间,窗口扫描为 O(N),额外空间为 O(N)。