完全背包问题的改进实现
来源:互联网 发布:无损音乐下载 知乎 编辑:程序博客网 时间:2024/06/08 11:16
完全背包问题就是每个东西都不限数量的,01背包问题呢,则是限制数量为1
对于改进了的01背包问题,也有改进了的背包问题,他们的想法上是一致的,只不过实现上有了一点差别
也是比较简单的,亲手debug一下吧
/** * 完全背包问题<br/> * * f[v]=max{f[w],f[w-w[i]]+v[i]}<br/> * 也就是f[i][v] = max{f[w],f[w-w[i]]+v[i]}<br/> * 时间复杂度O(WN)<br/> * 空间复杂度O(W)<br/> * * @author Joeson * */public class CompletePack{public static void main(String[] args){int[] value = new int[] { 12, 10, 20, 35, 20 };int[] weight = new int[] { 2, 1, 3, 2, 2 };int W = 5;System.out.println(knapsack(value, weight, W));}public static int knapsack(int[] v, int[] w, int W){int[] tmp = new int[W + 1];for (int i = 0; i < v.length; i++)completePack(tmp, v[i], w[i], W);return tmp[W];}/** * * @param tmp * 辅助数组 * @param value * 当前v[i]的价值 * @param weight * 当前w[i]的重量 * @param W * 总重量 */public static void completePack(int[] tmp, int value, int weight, int W){for (int i = 0; i <= W; i++){tmp[i] = i - weight >= 0 ? Math.max(tmp[i], tmp[i - weight] + value) : tmp[i];}}}
0 0
- 完全背包问题的改进实现
- 01背包、完全背包、多重背包问题的C++实现
- 01背包的改进实现
- 背包问题---01背包|完全背包(装满背包的方案总数分析及实现)
- 背包问题--完全背包 详解以及实现
- 背包问题——“完全背包”详解及实现(包含背包具体物品的求解)
- 背包问题——“完全背包”详解及实现(包含背包具体物品的求解)
- 背包问题——“完全背包”详解及实现(包含背包具体物品的求解)
- 背包问题——“完全背包”详解及实现(包含背包具体物品的求解)
- 背包问题----完全背包(详解|代码实现|背包具体物品的求解)
- 背包问题——“完全背包”详解及实现 (包含背包具体物品的求解)
- 01背包、完全背包、多重背包问题的C++实现及路径记录
- 背包问题——“01背包”及“完全背包”装满背包的方案总数分析及实现
- 完全背包问题(Java实现)
- 背包问题----完全背包(最优方案总数分析及实现)
- 背包问题---完全背包详细思路及实现
- 完全背包问题----思想的理解
- P1616 疯狂的采药,完全背包问题
- 稀疏矩阵及其用法
- TCP建立连接与释放连接
- 邻接表—DFS
- UML类图—机房收费系统
- android实现scale伸缩动画效果
- 完全背包问题的改进实现
- 【BZOJ】【今日刷的网络流合集】【P1877】【P1834】【P1412】【#1】
- String类非常有用的方法积累
- 数据库分区
- 如何取消“阻止保存要求重新创建表的修改”复选框?
- linux内存基础知识
- Oracle 常用sql
- TCP_NODELAY
- Pat(Advanced Level)Practice--1027(Colors in Mars)