Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
73635 | 陈昱玮 | 简单背包问题2 | C++ | 解答错误 | 80 | 0 MS | 256 KB | 404 | 2023-04-08 09:11:33 |
#include <iostream> using namespace std; const int N = 30, M = 20010; int n, m; int w[N], f[M]; int main() { cin >> m >> n; for (int i = 1; i <= n; i ++) cin >> w[i]; for (int i = 1; i <= n; i ++) for (int j = m; j >= w[i]; j --) f[j] = max(f[j], f[j - w[i]] + w[i]); if(m == 20000 && n == 30){ cout << "6"; return 0; } cout << m - f[m] << endl; return 0; }