01背包问题

Posted wangxuelin

tags:

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

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <string>
 4 #include <algorithm>
 5 using namespace std;
 6 const int N=100;
 7 int main()
 8 {
 9     int v[N]={0,8,10,6,3,7,2};
10     int w[N]={0,4,6,2,2,5,1};
11     
12     int m[N][N];
13     int n=6,c=12;
14     memset(m,0,sizeof(m));
15     for(int i=1;i<=n;i++)
16     {
17         for(int j=1;j<=c;j++)
18         {
19             if(j>=w[i])
20                 m[i][j]=max(m[i-1][j],m[i-1][j-w[i]]+v[i]);
21             else
22                 m[i][j]=m[i-1][j];
23         }
24     }
25 
26     for(int i=1;i<=n;i++)
27     {
28         for(int j=1;j<=c;j++)
29         {
30             cout<<m[i][j]<< ;
31         }
32         cout<<endl;
33     }
34     
35     return 0;
36 }

 

以上是关于01背包问题的主要内容,如果未能解决你的问题,请参考以下文章

01背包问题模板代码

代码随想录算法训练营第四十二天 | 01背包问题,你该了解这些01背包问题,你该了解这些 滚动数组 416. 分割等和子集

0-1背包问题的回溯法中,剪枝用的上界函数问题

把01背包问题的底裤扒个底朝天!!!

用回溯法求01背包问题,怎样使用C++模板啊,迫切求指点!

c语言背包问题,求高手解答