动态规划之0-1背包问题
2017-11-05 21:54
134 查看
//求最优解的值: int W = 17; //初始背包容量 int n = 5; //物品数量 int i; int w; int[] weight = { 3, 4, 7, 8, 9 }; //物品的重量 int[] v = {4, 5, 10, 11, 13 }; //各个物品的价值 int[,] c = new int[6, W + 1]; for (w = 0; w <= W; w++) { c[0, w] = 0; } for (i = 1; i <= n; i++) { c[i, 0] = 0; for (w = 1; w <= W; w++) { if (weight[i-1] <= w) { if (v[i-1] + c[i - 1, w - weight[i-1]] > c[i - 1, w]) { c[i, w] = v[i-1] + c[i -1, w - weight[i-1]]; } else { c[i, w] = c[i - 1, w]; } } else { c[i, w] = c[i - 1, w]; } } } txtShow.Text = c[n+1, W+1].ToString (); //求最优解: int[] x = new int[6]; for (i = n; i > 1; i--) { if (c[i, W] == c[i - 1, W]) { x[i] = 0; } else { x[i] = 1; W = W - weight[i]; } } if (c[1, W] == 0) { x[1] = 0; } else { x[1] = 1; } for (i=1;i<=n;i++) { if (x[i] == 1) { txtTwo.Text = txtTwo.Text + " " + i.ToString(); } }
相关文章推荐
- 集合问题 动态规划 01背包
- 动态规划之背包问题
- 动态规划之背包问题
- 【动态规划】简单背包问题II
- hdu 4501 动态规划 + 费用背包问题
- 动态规划之0-1背包问题
- 0-1背包问题 动态规划 算法入门经典
- [Sicily Coins] 动态规划 多重背包问题
- [动态规划]背包问题(找零/子集和/编辑距离)
- 【动态规划】常见背包问题合集
- c++实现0-1背包问题完整源码(动态规划实现)
- 动态规划---背包问题分析
- [置顶] 【动态规划】0-1背包问题
- 动态规划之背包问题-总结和拓展(二)
- 算法导论16.2-2--动态规划(0-1背包问题)
- 动态规划 背包问题
- 【数据结构_动态规划_背包问题_0963】小偷的背包
- POJ 3132 Sum of Different Primes 动态规划 DP 0-1背包问题
- 动态规划之 0-1背包问题及改进
- 动态规划 - 0-1背包问题的算法优化