AcWing 3. 完全背包问题
原题链接
简单
作者:
阿飞被注册了
,
2021-06-04 18:04:31
,
所有人可见
,
阅读 470
将01背包的倒叙遍历改为正序就是完全背包! 你学废了么(滑稽)
一维与二维转换思路在代码里面了
C++ 代码
#include <iostream>
#include <algorithm>
#include <cstring>
#include <cstdio>
using namespace std;
const int N = 1e3+10;
int v[N], w[N];
int f[N];
int main()
{
int n, m;
cin >> n >> m;
for(int i = 1; i <= n; i++) cin >> v[i] >> w[i];
for(int i = 1; i <= n; i++)
for(int j = v[i]; j <= m; j++)
{
//是将上层(i-1)的f[j] 赋给这层(i)的f[j] 即:f[i][j] = f[i-1][j];
f[j] = f[j];
// f[i][j] = f[i-1][j];
//由于j > j-v[i], 所以是将该层的f[j-v[i]赋给了该层的f[j]。即:f[i][j] = f[i][j-v[i]]
f[j] = max(f[j], f[j-v[i]] + w[i]);
// f[i][j] = max(f[i][j], f[i][j-v[i]] + w[i]);
}
cout << f[m];
return 0;
}
学废了
兄弟有时间填个邀请码hhhhhhhhh(可以得AC币,邀请码在学生认证那填) 我的邀请码是:GUDFH
wu, 还有这好事?
飞巨tql