01背包状态转换方程f(i,j)=Max{f(i-1,j-wi)+Pi(j>=wi),f(i-1,j)}
其中f(i,j)表示在前i件物品中选择若干件放在承重为j的背包中,可以取得的最大价值
Pi表示第i件物品的价值
决策:为了背包中物品总价值最大化,第i件物品应该放入背包中吗?
举例 题目HDU2602
已知N个糖果的重量和价值. 我们有一个口袋, 最多可以装V重量的糖果. 问口袋最多能放多少价值的糖果进去? Input
输入的第一行是T, 表示有T组数据.
每组数据由三行组成.
第一行包含两个整数N和V(N <= 1000, V <= 1000). N表示糖果的个数, V表示口袋的载重.
第二行包含N个整数, 表示每一颗糖果的价值.
第三行包含N个整数, 表示每一颗糖果的重量.
Output
对每一组数据, 输出口袋最终可以放进去糖果的价值.
Sample Input1 5 10 1 2 3 4 5 5 4 3 2 1Sample Output
14
(原题不是这样,这是另一个翻译版本)
个数\背包大小 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
0 | 0 | 0 | 0 |