Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
73676 | Agnes | 简单背包问题2 | C++ | 通过 | 100 | 2 MS | 2680 KB | 444 | 2023-04-08 11:24:39 |
#include <iostream> #include <algorithm> using namespace std; int a[35], b[35][20005] = {0}; int main() { int v, n; cin >> v >> n; for (int i = 1; i <= n; i++) cin >> a[i]; for (int i = 1; i <= n; i++) for (int j = 1; j <= v; j++) { if (a[i] > j) b[i][j] = b[i-1][j]; else b[i][j] = max(b[i - 1][j], b[i - 1][j - a[i]] + a[i]); } cout << v - b[n][v] << endl; }