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

背包问题之完全背包

时间:2015-04-08 12:58:46      阅读:109      评论:0      收藏:0      [点我收藏+]

标签:

完全背包:

有n种物品,每种物品有无限个,每个物品的重量为w[i],价值为v[i]。现在有一个背包,它所能容纳的重量为C,问:你的背包所能带走的最大价值是多少?

 

之前01背包分析过了,如果是顺序的话,就表示同一物品可以多次放入!这就是完全背包!

 1 #include <iostream>
 2 
 3 using namespace std;
 4 
 5 int w[105], val[105];
 6 int dp[1005];
 7 
 8 int main()
 9 {
10     int t, m, res=-1;
11     cin >> t >> m;
12     for(int i=1; i<=m; i++)
13     {
14         cin >> w[i] >> val[i];
15     }
16     for(int i=1; i<=m; i++) //物品 
17     {
18         for(int j=0; j<=t; j++) //容量 
19         {
20             if(j >= w[i])
21                 dp[j] = max(dp[j-w[i]]+val[i], dp[j]);
22             
23         }
24         for(int k=1; k<=t; k++)
25                 cout << dp[k] << " ";
26             cout << endl;
27     }
28         
29     cout << dp[t] << endl;
30     return 0;
31 }

 

背包问题之完全背包

标签:

原文地址:http://www.cnblogs.com/dominjune/p/4402017.html

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