选择一个整数以最大化总和

时间:2012-08-23 02:27:39

标签: algorithm math

如果给出整数对(a1,b1),(a2,b2),(a3,b3),..(an,bn)并且有一个最大和值= X那么我们如何选择给定的对,使得第一个条目的总和(即a1,a2,.... .ap)所选对中的maximum but <= X?例如,如果给定的对是(43,9),(57,12),(13,4)并且最大总和是71,那么我们可以选择的对是(57,12)(13,4)给出最大总和&lt; = 71(X)as 70。 我最初的方法是根据第一个条目值按降序排序对,然后可能是一个O(n ^ 2)算法..但我不确定这个,它对于大量数据也可能太慢了。所以它有什么有效的方法吗? 感谢。

1 个答案:

答案 0 :(得分:1)

听起来这可以通过修改0-1 Knapsack问题来实现。