码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2018-08-11 22:34:07      阅读:218      评论:0      收藏:0      [点我收藏+]

标签:不同的   div   重复   多重背包   ccf   color   进制   规划   pre   

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背包+完全背包+多重背包

标签:不同的   div   重复   多重背包   ccf   color   进制   规划   pre   

原文地址:https://www.cnblogs.com/JiaaaaKe/p/9461333.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!