Run ID | 作者 | 问题 | 语言 | 测评结果 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|
29734 | diandian | 01背包问题 | C++ | 解答错误 | 0 MS | 256 KB | 446 | 2023-11-02 20:59:42 |
#include <bits/stdc++.h> using namespace std; int dp[35][205], w[35], c[35], m, n; int main() { cin >> m >> n; for (int i = 1; i <= n; ++ i){ cin >> w[i] >> c[i]; } for (int i = 1; i <= m; ++ i){ for (int j = 1; j <= m; ++ j){ if (j > w[i]) dp[i][j] = c[i]; else dp[i][j] = max(dp[i - 1][j],dp[i - 1][j - w[i]] + c[i]); } } cout << dp[n][m]; return 0; }