Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
145082 | 吴晨曦 | 0/1背包问题 | C++ | 解答错误 | 30 | 2 MS | 268 KB | 461 | 2024-04-30 23:59:51 |
#include <bits/stdc++.h> using namespace std; const int N = 1e3 + 5; int dp[2][N], w[N], v[N]; int main() { int n, m; cin >> m >> n; 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++) { dp[i & 1][j] = max(dp[i & 1][j], dp[i - 1 & 1][j]); if (j > w[i]) dp[i & 1][j] = max(dp[i & 1][j], dp[i - 1 & 1][j - w[i]] + v[i]); } cout << dp[n & 1][m] << endl; return 0; }