0.问题描述
给定n种物品和一个背包,物品i的重量是wi,价值vi, 背包承重为C, 问如何选择装入背包的物品,使装入背包中的物品的总价值最大?
对于每种物品只能选择完全装入或不装入,一个物品至多装入一次。
1.问题分析
每个分叉都代表装入或不装入某个物品
2.思想
2.1 mainidea:运用动态规划求解问题就得把子问题的解记录下来,二该问题中的情况就是每个物品在/不在背包中的组合。把n个物品的大问题划分成n-i+1个物品存在/不存在的组合记录下来。弄一个C*n的矩阵来记录,问题可解
TIPS1 : 下式中 j 表示剩余的容量!
TIPS2 : 下式:比较加入不加入该物品和加入该物品后的 i+1到n个物品和新对应的剩余容量之间的最优解的大小
TIPS3 : 问题中的C必须是整数,因为矩阵中存储的C是以1为单位变化的,如果是小数则多项式时间内不可解