DP-完全背包问题
2018-03-30 17:28
363 查看
题目:
有n件物品,每件物品的重量为w[i],价值为c[i],现有一个容量为v的背包,问如何选取物品放入背包,使得背包内物品的总价值最大,其中每件物品都有无穷件。
思路:
dp[i][j]用来表示前I件物品,背包容量为j的物品最大价值
状态转移方程:dp[i][j] = max(dp[i - 1][j], dp[i][j - w[i]] + c[i])
Code:
有n件物品,每件物品的重量为w[i],价值为c[i],现有一个容量为v的背包,问如何选取物品放入背包,使得背包内物品的总价值最大,其中每件物品都有无穷件。
思路:
dp[i][j]用来表示前I件物品,背包容量为j的物品最大价值
状态转移方程:dp[i][j] = max(dp[i - 1][j], dp[i][j - w[i]] + c[i])
Code:
//完全背包问题 #include <iostream> #include <fstream> #include <cstring> using namespace std; const int maxn = 1010; int v,n; int w[maxn], c[maxn]; int dp[maxn][maxn]; void DP(){ memset(dp, 0, sizeof(dp)); for(int i = 1; i <= n; ++i){ for(int j = w[i]; j <= v; ++j){ dp[i][j] = max(dp[i - 1][j], dp[i][j - w[i]] + c[i]); } } } int main() { // fstream cin("a.txt"); cin >> n >> v; for(int i = 0; i < n; ++i){ cin >> w[i]; } for(int i = 0; i < n; ++i){ cin >> c[i]; } DP(); cout << dp [v] <<endl; return 0; }
相关文章推荐
- dp完全背包问题,hdu1114
- BToj 1030 硬币问题 【DP-完全背包】
- poj2063 & hdu1963 Investment 又是DP啦,,经典完全背包问题
- poj 1384 完全背包问题 dp
- Piggy-Bank(dp完全背包问题)
- 完全背包问题讲解(dp)
- 057_完全背包问题(DP)
- poj 2229 (dp 完全背包相似问题)
- HDU 2159 FATE (动态规划dp之二维完全背包问题)
- HDOJ(HDU).1284 钱币兑换问题 (DP 完全背包)
- NOJ 1984 比赛现场气氛营造问题II (线性dp 完全背包)
- DP算法入门(2)——完全背包问题(POJ2063题解)
- POJ 1252 Euro Efficiency(完全背包, 找零问题, 二次DP)
- 【HDU 1114】Piggy-Bank(dp||完全背包问题)
- 完全背包问题讲解(dp)
- DP背包问题小结(01背包,完全背包,需恰好装满或不需,一维DP、二维DP)
- HDU 1114 Piggy-Bank (dp问题之完全背包问题)
- 完全背包dp初始化问题
- 【算法系列学习】[kuangbin带你飞]专题十二 基础DP1 F - Piggy-Bank 【完全背包问题】
- 夕拾算法进阶篇:17)01背包和完全背包问题 (动态规划DP)