给定序列a [1],a [2],...,a [n],找到一个数组b [1]< b [2]< ......< b [n]使得| a [1] -b [1] | + | a [2] -b [2] | + ... + | a [n] -b [n] |是最低的

时间:2015-01-26 11:35:39

标签: arrays algorithm

我最近偶然发现了以下问题:

给定序列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.

0 个答案:

没有答案