1 条题解
-
1
传送门:题目详情 - 【例9.16】分组背包 - JMYSOJ (jmfes.com) #include <iostream> #include <vector> using namespace std;
int dp[1010], n[21]; vector<int> w[21], c[21];
int main() { int V, N, K; cin >> V >> N >> K; for (int i = 1; i <= N; i++) { int wi, ci, x; cin >> wi >> ci >> x; w[x].push_back(wi); c[x].push_back(ci); n[x] ++; } for (int i = 1; i <= K; i ++){ for (int j = V; j >= 0; j --){ for (int k = 0; k < n[i]; k ++){ if(j >= w[i][k]){ dp[j] = max(dp[j], dp[j-w[i][k]] + c[i][k]); } } } } cout << dp[V]; return 0; }
- 1
信息
- ID
- 516
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 7
- 标签
- (无)
- 递交数
- 17
- 已通过
- 8
- 上传者