Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
143759 | 吴宗桦 | 分组背包 | C++ | 通过 | 100 | 2 MS | 1056 KB | 522 | 2024-04-18 13:36:35 |
#include <iostream> using namespace std; int n,m,a[1010],b[1010],c[110][1010],maxn; int f[1010]; int main() { cin>>m>>n; for (int i = 1; i <= n; i++) { int t; cin>>a[i]>>b[i]>>t; maxn = max(maxn,t); c[t][++c[t][0]] = i; } for (int i = 1; i <= maxn; i++) for (int j = m; j >= 0; j--) for (int k = 1; k <= c[i][0]; k++) if (j - a[c[i][k]] >= 0) f[j] = max(f[j],f[j - a[c[i][k]]] + b[c[i][k]]); cout<<f[m]; return 0; }