给定 n 个队伍,每个队伍有一个实力值。我们希望将这些队伍进行配对,使得每一对的实力值差不超过给定的最大值 max_difference。我们的目标是计算出最大数量配对后的最小总实力差。如果无法进行任何有效的配对,则输出 -1。
排序:采用贪心的策略,首先将队伍的实力值进行排序,使得相邻队伍实力差值最小。
动态规划:
游戏里面,队伍通过匹配实力相近的对手进行对战。但是如果匹配的队伍实力相差太大,对于双方游戏体验都不会太好。
给定 n 个队伍的实力值,对其进行两两实力匹配,两支队伍实例差距在允许的最大差距 d 内,则可以匹配。
要求在匹配队伍最多的情况下匹配出的各组实力差距的总和最小。
第一行,n,d 。队伍个数 n 。允许的最大实力差距 d 。
第二行,n 个队伍的实力值空格分割。
匹配后,各组对战的实力差值的总和。若没有队伍可以匹配,则输出 −1。
输入
6 30
81 87 47 59 81 18
输出
57
说明
18 与 47 配对,实力差距 29
59 与 81 配对,实力差距 22
81 与 87 配对,实力差距 6
总实力差距 29+22+6=57
输入
6 20
81 87 47 59 81 18
输出
12
说明
最多能匹配成功4支队伍。
47 与 59 配对,实力差距 12 ,
81 与 81 配对,实力差距 0 。
总实力差距 12+0=12
输入
4 10
40 51 62 73
输出
-1
说明
实力差距都在 10 以上,
没有队伍可以匹配成功。