A19337.火星背包
普及+/提高
通过率:0%
时间限制:2.00s
内存限制:512MB
题目描述
时间限制:2000ms
内存限制:512MB
在遥远的火星矿场上,有 N 块重量和价值分别为 wi(1≤i≤N) 和 vi(1≤i≤N) 的矿石。
这些矿石都是相当沉重且宝贵的,以至于普通的背包难以装载。
不过,在这个星球上有一种特殊的背包,我们称之为 火星背包,它能够承载总重量不超过 M 的矿石。
你的任务是找到一种方法,在不超过背包承载能力的情况下,选取矿石,使得它们的总价值最高。
数据范围
- 1≤N≤40
- 1≤wi,vi,M≤1015
- 1≤wi≤M
输入格式
对于每个测试数据格式如下:
N M
w1 v1
w2 v2
⋮
wN vN
输出格式
答案的第一行为挑选的矿石总价值和数量。
第二行为挑选的矿石的编号。
若有多种最优方案,输出任意一种即可。
输入输出样例
输入#1
4 5 2 3 1 2 3 4 2 3
输出#1
8 3 1 2 4
输入#2
9 110 19 131 17 123 44 186 18 14 4 4 34 73 17 56 7 188 24 144
输出#2
697 5 2 3 7 8 9
说明/提示
测试用例 1:
选取矿石 [1,2,4] 需要的背包容量为 2+1+2=5,价值为 3+2+3=8。
无法通过选取其他矿石在背包容量允许的情况下,得到更大的价值。