初中OJ1573. 【提高】下棋

来源:互联网 发布:歌词 知乎 编辑:程序博客网 时间:2024/03/29 02:29

题目大意:

有N个不相同的数,每个数可以和一个比自己大的数组成一对,也可以和一个比自己小的数组成一对。求当组成K对数之后的每队数差之和的最小值。

方法1:

递归枚举每队数,取最小值。
预计得分:20


方法2:

DP,具体自行脑补
预计得分:


方法3:

贪心,每次找最小的一对。
预计得分:30

接下来步入正题。

举个例子:
1 2 3 4四个数要求配成两对,有两种可行的方法是:
(1,3)(2,4)和(1,4)(2,3)
差值为(3-1)+(4-2)=4 和 (4-1)+(3-2)=4
所以可以看出,当我们选了一堆数出来配对时,顺序不改变结果
为了方便计算,我们假设每个数只和自己的前一个和后一个数配对。
这样既能保证答案正确,又可以达到题目要求。

方法4

把初始序列排序后,两两相减,把得出的结果从小到大排序,取前K个结果之和。
得分:100

1 0