#P1461. 01+完全背包问题
01+完全背包问题
Description
n种物品,每种物品有相应的价值和体积,同时物品还分为两类,
一类是“单个物品”,即该种物品只有一个;
一类是“多个物品”,即该种物品有无限个。
现在你有一个体积为V的背包,那么该装些什么物品到背包里使得价值之和最大呢?
对样例的解释:第三种物品有无限个,其余都是单个物品。
若我们放入物品1,则背包已经装满,此时价值和为6;
若我们放入物品2、4、5,背包所剩体积为8-3-1-2=2,此时价值和为7+8+5=20;
若我们放入8个物品3,背包装满,此时价值之和为8×1=8;
若我们放入物品2、4、5,再放两个物品3,则背包装满,此时价值和为7+8+5+2×1=22。
可以验证,最优答案就是22。
Input Format
第一行包含两个正整数n,V。
接下来n行,每行代表一种物品。每行的第一个数字表示该物品的种类(若为0表示“单个物品”,若为1表示“多个物品”),第二个数字表示该物品的价值,第三个数字表示该物品的体积。
Output Format
输出一个整数,表示最大的价值之和。
5 8
0 6 8
0 7 3
1 1 1
0 8 1
0 5 2
22
Hint
Source
动态规划