题干分析 题设给予我们一个有限大小的背包,大小为V。同时给予我们n个骨头及其对应的价值与所占空间。求骨头收藏家使用该背包能够获得的最大骨头总价值。 算法思路 拆分问题: 我们首先考虑只装第一块骨头的情况: 背包大小从0~V递增的过程中不难证明当背包大小超过第一块骨头大小时将其塞入为最优策略。 接着我们尝试考虑放前两个骨头:我们只考虑第二块骨头 背包大小V不足以放下第二块骨头时直接继承只放第一块骨头的最优情况 背包大小V足以放下第二块,我们此时有两个选择:放下第二块与不放,不放的情况与只放一块骨头情况一致,放下第二块骨头则背包大小缩小为V-v[2],此时子问题为在大小为V-v[2]大小的背...