正文

01背包与完全背包的心得2009-07-31 21:36:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/swell/45925.html

分享到:

用一维写的代码。 01背包:   for(j = 1;j <= n;j++)                      for(i = v;i <= 0;i++)                           f[i] = max(f[i],f[i-c[j]]+d[j]);   完全背包:   for(j = 1;j <= n;j++)                      for(i = 0;i <= v;i++)                           f[i] = max(f[i],f[i-c[v]]+d[i]);     两个背包只差在内循环的顺便。因为如果是正着数的话,f[j][i]的状态就会由f[j][i-c[j]]来推导得。 显然f[j][i-c[j]]是已经进入第j种物品的子结果,这是不符合01背包的,而应该是无限背包的。

阅读(1760) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册