我最近偶然发现了以下问题:
给定序列a[1], a[2], ..., a[n]
,找到一个数组b[1] < b[2] < ... < b[n]
,使|a[1]-b[1]| + |a[2]-b[2]| + ... + |a[n]-b[n]|
最小。
我已经提出了一些观察,但我仍然无法找出任何可行的解决方案。
我不知道预期的时间复杂度,也不知道解决方案。但是给出了n <= 10^6
。
问题来自BOI 2003,被称为序列。
输入
9 4 8 20 14 15 18
输出
6 7 8 13 14 15 18
因为差异是13.