码迷,mamicode.com
首页 >  
搜索关键字:01 背包问题    ( 1524个结果
HDU -1864最大报销额(01背包)
这道题属于简单的01背包,但是背包问题还算简单,就是前面的细节处理的时候要注意,题意大致说了三条限制吧1. 只有a, b, c 三种类型的发票可以报销,其它的一律不报销2. 物品单项的报销额不超过6003. 每个发票总额不超过1000有了这三个,还有一个要小心的就是报销额可以为浮点数,所以这里有个小...
分类:其他好文   时间:2014-12-10 21:15:26    阅读次数:170
0-1背包问题(DP)
背包问题(Knapsackproblem):给定一组物品,每种物品都有自己的重量和价格,在限定的总重量内,我们如何选择,才能使得物品的总价格最高。即在总重量不超过W的前提下,总价值是否能达到V?基本思路这是最基础的背包问题,特点是:每种物品仅有一件,可以选择放或不放。用子问题..
分类:其他好文   时间:2014-12-09 19:49:11    阅读次数:219
HDU -2670 Girl Love Value
这道题是刚好装满的背包问题,刚好选取k个,状态转移方程为dp[i][j] = max( dp[i - 1][j], dp[i - 1][j - 1] + Li - Bi(j - 1) )dp[i][j] 表示从前 i 个男孩中选取 j 个的 Li 的最大值, 首先按照Bi 排一下序,这个是利用贪心的...
分类:其他好文   时间:2014-12-08 22:49:47    阅读次数:295
【算法设计与分析】7、0/1背包问题,动态规划
/** * 书本:《算法分析与设计》 * 功能:给定n种物品和一个背包,物品i的重量是Wi, 其价值为Vi,问如何选择装入背包的物品,使得装入背包的物品的总价值最大? * 文件:beiBao.cpp * 时间:2014年11月30日19:22:47 * 作者:cutter_point */ #include #define SIZEBEIBAO 20 using namespace std...
分类:编程语言   时间:2014-12-07 19:08:33    阅读次数:249
分数背包问题(贪心算法)
#include #include #include #include using namespace std; /* *分数背包问题(贪心算法) */ struct goods { double value;//物品的价值 double weight;//物品的重量 double ratio;//物品的性价比 double in;//物品装入背包的重量 int index;/...
分类:编程语言   时间:2014-12-05 14:19:24    阅读次数:508
回溯法--0-1背包问题
算法描述:0-1背包的回溯法,与装载问题的回溯法十分相似。在搜索解空间树时,只要其左儿子结点是一个可行结点,搜索就进入其左子树。当右子树中有可能包含最优解时才进入右子树进行搜索。否则将右子树剪去。 计算右子树上界的更好算法是: 将剩余物品依其单位重量价值排序,然后依次装入物品,直至装不下时,...
分类:其他好文   时间:2014-12-04 17:12:59    阅读次数:184
0-1背包问题(动态规划)
#include #include #include #include #include using namespace std; /* *0-1背包问题(动态规划) */ vector> values;//values[i][j]表示在前i个物品中能够装入容量为j的背包中的物品的最大值 (二维数组方案二) void knapsack(vector& w,vector& v,int n,...
分类:其他好文   时间:2014-12-03 23:25:41    阅读次数:259
0-1背包问题(递归实现)
#include #include #include #include #include using namespace std; /* *0-1背包问题(递归实现) */ //int * * values;//values[i][j]表示在前i个物品中能够装入容量为j的背包中的物品的最大值 (二维数组方案一) vector> values;//values[i][j]表示在前i个物品中能够装...
分类:其他好文   时间:2014-12-03 21:20:05    阅读次数:166
POJ 3181 Dollar Dayz 动态规划法题解
本题也是一种背包问题,就是需要求出有多少种组合。 本题的新意就是: 1 利用两个long long数表示大数的高位和低位就能满足不溢出了 2 高位和低位需要仔细计算好 建模: dp[i][j]:表示计算当前i物品的时候有j钱币的时候有多少种组合。 那么状态转换:dp[i][j] = dp[i-1][j] + dp[i][j-i]//dp[i-1][j]表示前一种物品计算出的组合数,也就是不买i物品的组合数, dp[i][j-i]表示空出i钱币购买i物品的组合数 难点: 仔细观察,会发现其实不单止不用二维数...
分类:其他好文   时间:2014-12-03 12:26:40    阅读次数:189
背包问题--求第K大值
这算法有毒,一不小心沾上了不死也脱皮! 在背包问题中这个求第K大值就骚扰了我一整天,让我心神不宁,浑身难受- -! 我看到的这种写法是把原本的DP[X]加一维变成DP[X][Y],X用来确定当前背包容量,Y则是Y个值,分别是记录从最大到第K大,(因为只要求K大,所以那些更小的值就不用记录了) 接下来是讨论这个DP[X][Y],可以理解为它是表示的背包容量为X时的第Y大值,而DP[X][ ]可...
分类:其他好文   时间:2014-12-03 00:26:15    阅读次数:194
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!