水一篇题解(捂脸)
背包大部分人用的是人人为我,
也就是拿之前的状态更新现在的,
这道也可以用当前状态更新下一状态,
也就是我为人人,
其实内容都是差不多的,多一个思路罢了
#include <iostream>
using namespace std;
const int N = 1024;
int n,m;
int w[N];
int v[N];
int f[N][N];
int main()
{
cin >> n >> m;
for(int i = 1;i <= n;i ++) cin >> w[i] >> v[i];
for(int i = 0;i < n;i ++)
{
for(int j = 0;j <= m;j ++)
{
f[i + 1][j] = max(f[i + 1][j],f[i][j]);//下一个不选
if(j + w[i + 1] <= m)
f[i + 1][j + w[i + 1]] = max(f[i + 1][j + w[i + 1]],f[i][j] + v[i + 1]);//下一个选
}
}
cout << f[n][m];
return 0;
}
我的点击让大佬这篇题解的阅读量达到了$3600$……
不是我从哪里来和我到哪里去吗(
少一个我是谁
一股新兴力量正在崛起
# 牛
## 啤
???