acwing_01背包

Posted wasbry

tags:

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

技术图片

 

 

 

#include <iostream>
#include <algorithm>
using namespace std;
const int MAX=1010;
int f[MAX][MAX];//表示装了前i个背包后的最大价值是多少
int v[MAX],w[MAX];
int main()
{
int n,m;
cin>>n>>m;
for(int i =1;i<=n;++i)
cin>>w[i]>>v[i];
for(int i =1;i<=n;++i)
{
for(int j=1;j<=m;++j)
{ if(j<w[i])
f[i][j]=f[i-1][j];
else
f[i][j]=max(f[i-1][j],f[i-1][j-w[i]]+v[i]);
}

}
cout<< f[n][m];
return 0;
}

 

注意样例读入顺序,输出格式,还有变量声明技巧;

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

AcWing-1022

题解AcWing279自然数拆分

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

AcWing 5. 多重背包问题 II

题解AcWing10有依赖的背包问题

AcWing 5. 多重背包问题 II(二进制优化)