作业帮 > 综合 > 作业

详细解析动态规划与0-1背包问题,怎么理解,要易懂的,我将感激不尽!

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/07/03 09:39:18
详细解析动态规划与0-1背包问题,怎么理解,要易懂的,我将感激不尽!
01背包 2个状态
一个背包只有取或不取
前I个背包去装J的空间
考虑2种情况 F[I,J]:=MAX ( F[I-1,J],F[I-1,J-V[I]]+W[I])
F[I-1,J]表示第I个不取 则F[I,J]与用前I-1个装J相同
F[I-1,J-V[I]]+W[I]表示第I个取 即用前I-1个装J-V[I] (表示前I-1 装J-V[I])
然后再加上第I个的价值
这两个取最大的
fillchar(a,sizeof(a),0);
FOR I:=1 TO N DO
FOR J:=1 to m do
if (j-v[i]>=0)and( [I-1,J-V[I]]+W[I]> F[I-1,J]) then f[i,j]:=[I-1,J-V[I]]+W[I]
else f[i,j]:=f[i-1,j];
writeln(f[n,m]);
初始化全赋值为0 数组从0开始
你可以去看看背包9讲 百度文库有
去RQ 或TYVJ 做些题就行了 必须做题