完全背包
2024-10-10
288
有n件物品和一个最多能背重量为w 的背包。第i件物品的重量是v[i],得到的价值是w[i] 。每件物品能取无限次,求解将哪些物品装入背包里物品价值总和最大。#include <bits/stdc++.h>using namespace std;int n, V, ans, v[1005], w[1005];int dp[1005];// 状态定义 dp[i][j]表示讨论第i个物品,背包容量为j时,能
有n件物品和一个最多能背重量为w 的背包。第i件物品的重量是v[i],得到的价值是w[i] 。每件物品能取无限次,求解将哪些物品装入背包里物品价值总和最大。
#include <bits/stdc++.h>
using namespace std;
int n, V, ans, v[1005], w[1005];
int dp[1005];
// 状态定义 dp[i][j]表示讨论第i个物品,背包容量为j时,能取到的最大价值
// 状态转移方程 dp[i][j] = max(dp[i-1][j], dp[i-1][j-v[i]] + w[i]);
// 常用滚动数组优化一维 dp[j] = max(dp[j], dp[j-v[i]] + w[i]);
// 和 0-1背包不同是转移顺序变化
int main() {
cin >> n >> V;
for (int i = 1; i <= n; i++) {
cin >> v[i] >> w[i];
}
for (int i = 1; i <= n; i++) {
for (int j = v[i]; j <= V; j++) {
dp[j] = max(dp[j], dp[j-v[i]] + w[i]);
}
}
cout << dp[V];
return 0;
}
上一篇:0-1背包问题
下一篇:没有了!
推荐阅读
山东省青少年科技辅导员创新能力提升活动
凌志编程机器人培训学校全体教师参加山东省青少年科···
淄博市第七届智力运动会
由淄博市教体局,淄博市科协主办,凌志编程机器人培···
不同地区创客空间建设有何优势
创客空间建设 能够给人们分享各种乐趣,通过电脑,···
深层解析何为创客教育
在了解创客教育之前,我们首先了解下何为创客。创客···
相关案例