动态规划最泛的思想就是从最小的问题开始,每一步的结果都保存下来,以后更大的结果就直接用小的结果来构造,这样就减少很大的计算量.
我们所要的就是那个最大的结果
在解决0-1背包问题中:
两个循环嵌套,一个循环容量(从1开始,步长为1),一个循环个数(从1开始,步长为1)
最佳方案存在一个二维数组里, 大小为 (最大容量 + 1)*(最大个数 + 1)
第一行和第一列为 0,作为起始条件.
如果 (本物体价值 + 出去本物体的剩余空间的最佳方案) > (上一次最佳方案)
则 本次最佳方案 = (本物体价值 + 出去本物体的剩余空间的最佳方案)
否则 本次最佳方案 = 上一次最佳方案
在这之前还要保证本物体的限制条件
过几天再写个小程序实现,要写作业了.