动态规划之背包问题-01背包+完全背包+多重背包

Posted jiaaaake

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了动态规划之背包问题-01背包+完全背包+多重背包相关的知识,希望对你有一定的参考价值。

01背包

有n种不同的物品,每种物品分别有各自的体积 v[i]价值 w[i]  现给一个容量为V的背包,问这个背包最多可装下多少价值的物品。

1 for(int i = 1; i <= n; i++)
2     for(int j = V; j >= v[i]; j--)
3         dp[j] = max(dp[j], dp[j-v[i]]+w[i]);    //dp[V]为所求

完全背包

01背包每种物品只能取一个, 完全背包即物品不记件数,可取多件

1 for(int i = 1; i <= n; i++)
2     for(int j = v[i]; j <= V; j++)     //和01背包的不同 
3         dp[j] = max(dp[j],dp[j-v[i]+w[i]]);

多重背包

每种物品可取 件数h[i] 已经确定。

1 for(int i = 1; i <= n; i++)
2     for(int j = V; j >= v[i]; j--)
3         for(int k = 0; k <= h[i]; k++)
4             if(j >= k*v[i])
5                 dp[j] = max(dp[j],dp[j - k*v[i]] + k*w[i]);

 

这样还是都差不多可以理解了,明天再学多重背包的二进制分解优化(看了一下下 好像没看懂 hhhhh

今天就酱啦~  感觉自己ya 虚度光阴 学了好些时候了的也 今天一直在重复敲模板  希望明天能有进步! 

ヾ(?ω?`)o 白白 

 


以上是关于动态规划之背包问题-01背包+完全背包+多重背包的主要内容,如果未能解决你的问题,请参考以下文章

动态规划_01背包_完全背包_多重背包_分组背包

动态规划——背包问题python实现(01背包完全背包多重背包)

动态规划背包问题 01背包 完全背包 多重背包

第五讲 动态规划

动态规划多重背包问题

动态规划背包问题总结:01完全多重与其二进制优化分组背包 题解与模板