Run ID | 作者 | 问题 | 语言 | 测评结果 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|
49573 | Koddo | 装箱问题 | Python3 | 解答错误 | 1484 MS | 3700 KB | 683 | 2024-07-18 13:05:19 |
def fill(lst, room): if not lst: # 物品取完 return 0 if not room: # 没有空间 return 0 not_take = fill(lst[1:], room) # 不放入当前物品 take = 0 if room >= lst[0]: # 空间够放 take = lst[0] + fill(lst[1:], room - lst[0]) # 放入当前物品 return max(not_take, take) # 返回两者中的最大值 v = int(input('请输入容器的容量:')) n = int(input('请输入物品数量:')) lst = [] for i in range(n): lst.append(int(input('请输入物品重量:'))) lst.sort(reverse=True) # 将物品按照重量降序排序,以便优先考虑放入重的物品 print(fill(lst, v))