背包
JimmyLegend
Write the Code Change the World!
展开
-
01背包、完全背包、多重背包问题的C++实现
01背包问题容量为10的背包,有5种物品,每种物品只有一个,其重量分别为5,4,3,2,1,其价值分别为1,2,3,4,5。 设计算法,实现背包内物品价值最大。 代码如下(输出14)#include <iostream>#include<algorithm>using namespace std;int main() { int total_weight...转载 2018-03-01 13:04:10 · 715 阅读 · 0 评论 -
0-1背包问题
问题:有n个物品,第i个物品价值为vi,重量为wi,其中vi和wi均为非负数,背包的容量为W,W为非负数。现需要考虑如何选择装入背包的物品,使装入背包的物品总价值最大。该问题以形式化描述如下: 目标函数为 : 约束条件为: 满足约束条件的任一集合(x1,x2,...,xn)是问题的一个可行解,问题的目标是要求问题的一个最优解。考虑一个实例,假设n=5,...转载 2018-03-01 13:18:53 · 743 阅读 · 0 评论 -
总结——01背包问题 (动态规划算法)
0-1 背包问题:给定 n 种物品和一个容量为 C 的背包,物品 i 的重量是 wi,其价值为 vi 。问:应该如何选择装入背包的物品,使得装入背包中的物品的总价值最大?分析一波,面对每个物品,我们只有选择拿取或者不拿两种选择,不能选择装入某物品的一部分,也不能装入同一物品多次。解决办法:声明一个 大小为 m[n][c] 的二维数组,m[ i ][ j ] 表示 在面对第 i 件物品,且背包容量...转载 2018-03-01 13:23:54 · 380 阅读 · 0 评论 -
动态规划解决01背包问题
一、问题描述:有n 个物品,它们有各自的重量和价值,现有给定容量的背包,如何让背包里装入的物品具有最大的价值总和?二、总体思路:根据动态规划解题步骤(问题抽象化、建立模型、寻找约束条件、判断是否满足最优性原理、找大问题与小问题的递推关系式、填表、寻找解组成)找出01背包问题的最优解以及解组成,然后编写代码实现;三、动态规划的原理及过程: eg:number=4,capacity=8i1234w(...转载 2018-03-01 13:27:51 · 295 阅读 · 0 评论