Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
143036 | 王容宇 | 分组背包 | C++ | 通过 | 100 | 6 MS | 8140 KB | 564 | 2024-04-11 21:53:19 |
#include <bits/stdc++.h> using namespace std; struct str { int w, v; }; vector<str> a[1001]; long long dp[1001][1001]; int main() { int n, m; cin >> n >> m; for(int i = 1; i<=m; i++) { int w, v, y; cin >> w >> v >> y; a[y].push_back({w, v}); } for(int i = 1; i<=m; i++) { for(int j = 1; j<=n; j++) { dp[i][j]=dp[i-1][j]; for(int k = 0; k<a[i].size(); k++) { if(j>=a[i][k].w) { dp[i][j]=max(dp[i][j], dp[i-1][j-a[i][k].w]+a[i][k].v); } } } } cout << dp[m][n] << endl; return 0; }