背包问题集合
酥梨儿
我一直很酥的
展开
-
背包问题-完全背包问题
在背包问题的基础上,每种物品能选无限次只要不超过总体积即可。首先想到的很简单直接加一重循环即可只要没超就往里塞。public class Main { static int V = 5; static int n = 4; static int[] v = {0, 1, 2, 3, 4}; static int[] w = {0, 2, 2, 4, 5}; ...原创 2019-03-15 17:38:16 · 118 阅读 · 0 评论 -
背包问题-01背包问题
n个物品,总体积是V,每个物品的体积的vi,每个物品的最大价值是wi,在不超过V的体积下求最大价值eg背包容积为 5物品数量为 4物品的体积分别为 {0, 1, 2, 3, 4}物品的价值分别为 {0, 2, 4, 4, 5}思路定义一个二位数组 int [][] f = new int[n+1][V+1]f[i][j]就表示在1~i个物品中选取体积小于V的情况的最大价值。对于该题我...原创 2019-03-15 16:46:55 · 1005 阅读 · 0 评论 -
背包问题-二维背包问题
背包的最大体积V是5最大重量M是6共有4个物品单个物品的体积v = {0, 1, 2, 3, 4};单个物品的价值w = {0, 2, 4, 4, 5};单个物品的重量m = {0, 3, 4, 5, 6};对于二维背包问题限制无非是从体积变成了体积和重量,所以我们把表示价值的一维数组扩成二维数组即可。代码如下:public class Main { static int V...原创 2019-03-15 17:58:35 · 1562 阅读 · 0 评论 -
背包问题-两个背包问题
递归解法:public class Main0 { static int n = 5; static int[] v={0,3,7,4,49,2}; static int[] w={0,3,4,7,50,2}; public static void main(String[] args){ int AV = 10; int BV ...原创 2019-03-20 11:32:09 · 4753 阅读 · 0 评论 -
背包问题-多重背包问题
在01背包的基础上限制了每件物品数量的上限。最多为si个最简单的思路就是在多一层循环只要不够s同时不超过V就试图往里加代码如下public class Main { static int V = 5;//总体积为5 static int n = 4;//物品数量为4 static int[] v = {0, 1, 2, 3, 4};//每个物品的体积为vi st...原创 2019-03-18 10:17:54 · 229 阅读 · 0 评论 -
背包问题-混合背包问题
混合背包问题指的是对于某种物品它对应的是0-1背包,完全背包,和多成背包问题的一种。对于这种情况我们则要对物品分别处理,当然为了方便起见还是要对多重背包进行拆分。物品有3类n种第一类 s = -1 代表0-1背包问题第二类 s = 0 代表可以用无限次第三类 s > 0 代表可以用s次代码如下:public class Main { static int V = 5;...原创 2019-03-18 10:26:30 · 255 阅读 · 0 评论