首页 > 其他 > 详细

01背包+完全背包

时间:2021-05-22 23:09:00      阅读:20      评论:0      收藏:0      [点我收藏+]

01背包

 1 void test_1_wei_bag_problem() {
 2     vector<int> weight = {1, 3, 4};
 3     vector<int> value = {15, 20, 30};
 4     int bagWeight = 4;
 5 
 6     // 初始化
 7     vector<int> dp(bagWeight + 1, 0);
 8     for(int i = 0; i < weight.size(); i++) { // 遍历物品
 9         for(int j = bagWeight; j >= weight[i]; j--) { // 遍历背包容量
10             dp[j] = max(dp[j], dp[j - weight[i]] + value[i]);
11         }
12     }
13     cout << dp[bagWeight] << endl;
14 }
15 
16 int main() {
17     test_1_wei_bag_problem();
18 }

完全背包

 1 // 先遍历物品,在遍历背包
 2 void test_CompletePack() {
 3     vector<int> weight = {1, 3, 4};
 4     vector<int> value = {15, 20, 30};
 5     int bagWeight = 4;
 6     vector<int> dp(bagWeight + 1, 0);
 7     for(int i = 0; i < weight.size(); i++) { // 遍历物品
 8         for(int j = weight[i]; j <= bagWeight; j++) { // 遍历背包容量
 9             dp[j] = max(dp[j], dp[j - weight[i]] + value[i]);
10         }
11     }
12     cout << dp[bagWeight] << endl;
13 }
14 int main() {
15     test_CompletePack();
16 }

 

01背包+完全背包

原文:https://www.cnblogs.com/yuhong1103/p/14799365.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!