如果我们给出了整数对(a1,b1),(a2,b2),(a3,b3),..(an,bn)
并且有一个最大总和值= X
那么我们如何选择给定的对使得第一个条目的总和(即a1,a2,... ap )在所选对中是maximum but <= X
? E.g如果给定的对是(43,9),(57,12),(13,4)
和最大总和71
然后我们可以选择对是(57,12)
和(13,4)
给出最大总和< = 71(X)为70。 我最初的方法是根据第一个输入值按降序排列对,然后可能是一个O(n^2)算法..但我不确定这个,对于大量数据它也可能太慢。那么有没有有效的方法呢? 谢谢。选择一个整数来最大化总和
0
A
回答
1
听起来这可能与0-1 Knapsack问题的修改来实现。
相关问题
- 1. 数据表中选择最大总和
- 2. 选择最大总和的有理数
- 3. 最大化总和
- 4. MySQL的选择最大的总和值
- 5. 选择两列总和的最大值
- 6. 选择最大日期的总和
- 7. 选择总和最大的向量Matlab
- 8. 选择每天总和()的最大值
- 9. 来自未分类数组总和的PHP最大整数
- 10. 拆分一个整数并找到最大的总和C++
- 11. CI:选择最大返回整数?
- 12. 如何选择最高支数,总和
- 13. 来自同一个电话选择最后2最大
- 14. 从多个递增序列中选择最大值的总和
- 15. 选择最大的数额,但没有结果的总和
- 16. 选择最小,最大和一行有一个特殊的FK
- 17. 最大化两个整数列表之间的总和? (有限制)
- 18. 选择总和大于某个数字的最小数量记录
- 19. 选择整个最后一行
- 20. 窗体大小调整和最大化
- 21. 选择在SQL Server中最大的日期和COMPRATE的总和
- 22. 在一个SQL查询中选择最大值和最小值
- 23. 在一个MySQL命令中选择最大和最小记录
- 24. 选择一个对象的最小值和最大值
- 25. 弹出窗口最大化和关闭,调整大小选项
- 26. Excel - 只选择一个最大值
- 27. 选择最大值列的完整行
- 28. numpy的整数优化/最大化
- 29. Linq NHibernate:一次选择多个总和
- 30. 为每个组选择第一个,最大和最后一个非空值
我很困惑,如何才能最大总和同时是X和<= X(除非它只是X,在这种情况下,为什么有<?)。此外,这对#号码如何适应?我想你可能会丢失或误解的问题的一部分。(编辑)OK,我想我明白了,你都获得了最高金额(X),所以必须选择是<= X) – user439407
我指的总和对的第一项必须是最大的但同时 71 –
pranay
我认为'pranay'it是动态规划问题。在动态编程中寻找最大总和问题,这可能会对你有所帮助。但仍usuaully在这种特殊情况下,也将给予为O(n^2),但我认为我们可以通过这样的事情在O(n)的做到这一点: 首先只考虑一对好喜欢43的第一部分,57然后类似于DP的加权区间调度问题,即通过如下方式获得概率的解:“或者第i个值将在解决方案中,或者它不会出现递归设计,因此解决方案要么是第i个成员,要么是从第i-1个成员' –