【发布时间】:2018-05-13 10:33:44
【问题描述】:
我有一个球员名单,每个球员都有薪水和评分(都是整数值)。
我必须找到 6 名球员的第 n 大组合(就他们的评分总和而言最大),并限制他们的薪水总和必须小于或等于 50000。
例如,如果我有一个玩家 1,2,...,m 的列表,我目前正在做的是:
- 生成所有可能的 6 个玩家组合(m 选择 6)。
- 过滤掉工资总和> 50000的组合
- 按评分总和降序排列剩余组合
- 从排序列表中选择第 n 个。
这显然是一种蛮力方法,适用于少数玩家。但目前我有 140 名玩家,产生了超过 90 亿种组合,完成的时间太长了。
关于如何更快地做到这一点的任何建议?
【问题讨论】:
-
听起来像是一个固定数量物品的 0/1 背包问题
标签: algorithm