动态规划--背包问题
文章平均质量分 55
ren_hui
每天早上醒来你荷包里的最大资产是24个小时你生命宇宙中尚未制造的材料
展开
-
hdu 2602 Bone Collector (01背包 )
Bone CollectorTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 21293 Accepted Submission(s): 8548Problem DescriptionMany years原创 2013-07-30 21:22:57 · 436 阅读 · 0 评论 -
hdu 1712 ACboy needs your help (分组背包)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1712解题报告:只说一点主意for循环间的顺序使用一维数组的伪代码如下: for 所有的组k for v=V..0 for 所有的i属于组k f[v]=max{f[v],f[v-c[i]]+w[i]} 注意这里的三层循环的顺序“for v=V..0”这一层循环必须在“原创 2013-08-03 19:47:32 · 497 阅读 · 0 评论 -
hdu 3033 I love sneakers! (分组背包)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3033解题报告:这道题参考了别人的代码,实在不知道如何做我们把dp[I][j]定义为取第i品牌的商品,花费j时取得的最大的 value,dp[][]的初始化是全初始化为-1,目的在于判断是否是否可以满足,Iserlohn的要求,如果最后是-1则不满足然后在俩个if判断语句中,第一个是判断去第原创 2013-08-03 16:56:39 · 464 阅读 · 0 评论 -
hdu 2660 Accepted Necklace (二维背包 简单题)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2660解题报告:题目中对每个物品的取舍包含两个方面的因素 1、自己选择的宝石种类 2、妈妈所能接受的最大的重量。所以是二维背包的类型的问题由于每个物品只能使用一次,求最大的价值,所以转换为01背包。即:for(int j=use;j>=0;j++)code: #include原创 2013-08-03 08:19:24 · 665 阅读 · 0 评论 -
hdu 3496 Watch The Movie (二维背包简单题)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3496解题报告:题目中有两个“花费”,典型的二维背包的问题本题主要是推出状态转移方程,已知每部电影所花费的时间和得到的 欢乐,用dp[][]存放每一步所得到的欢乐,则该步所得的欢乐可以由上一步递推的到,用val[]存放欢乐,len[]存放每部花费的时间,则状态转移方程为dp[j][k]=原创 2013-08-02 21:12:56 · 571 阅读 · 0 评论 -
hdu 2159 FATE (二维背包)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2159解题报告:二维背包的问题,如果没有看过的话,建议去看看背包9讲中的第五个问题。本题中有每杀一个怪,会获得一定的经验,同时减少一定的忍耐度,我用二维数组dp[][]来存放每次获得的经验值,b[i]为每次消耗的忍耐所以可以的到递推关系式:dp[i][j] = max(dp[i-b[原创 2013-08-02 17:07:09 · 559 阅读 · 0 评论 -
hdu 1171 Big Event in HDU (多重背包)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1171解题报告:多重背包:每件物品有有限件,背包的容量一定,然后求背包所能装下的最大的价值;对于这道题,“两兄弟”分家,有好多种物品,每件物品价值一定,每件物品数量也很多,A的最终财富大于等于B,求应该如何分配;很显然多重背包的问题:多重背包其实并不复杂,而且用二进制的思想将原问原创 2013-08-01 16:35:21 · 611 阅读 · 0 评论 -
hdu 1059 Dividing (多重背包)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1059解题报告:这道题的方法没有什么特别之处,就是太用多重背包的模板,注意两点 :dp[]开的要大一些,刚开始20005时老是run time error 。还有就是在01函数中最大的上限用half,别用一个非常大的数字,想20005,总会wa,应该是数据范围超了吧code:#inc原创 2013-08-02 09:59:25 · 456 阅读 · 0 评论 -
hdu 3591 The trouble of Xiaoqian ( 多重背包 + 完全背包 )
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3591解题报告:个人感觉很好的一道题目,首先不是水题,题目的难度也不算很大,虽然花了一晚上才搞完,但是还是感觉很开心~~。解题思路是:首先这个人有各种钱币,每种钱币若干,所以我们对这个人的钱用多重背包解决;再者是找钱的人,可以认为他们有各种各样的钱币,都是无限件,所以对于收银员进行完原创 2013-08-01 22:55:53 · 585 阅读 · 0 评论 -
hdu 1248
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1248解题报告:一遍ac,不能总是这样子刷水题,在这样下去,自己迟早瘫掉!由于只有一张纸币,每件物品有好多,完全背包问题。。。code:#include#include#includeusing namespace std;int w[4]={0,150,200,300},dp[原创 2013-07-31 19:18:03 · 523 阅读 · 0 评论 -
poj 1384 && hdu 1114 Piggy-Bank (完全背包)
题目链接:http://poj.org/problem?id=1384解题报告:题目要求背包容量一定,把背包装满时背包的价值最小。 由于每一件物品的数量是无限的,所以是完全背包问题。 题目要求价值最小,所以我们在初始化的时候,应该初始化最大值,由于在背包容量为0的时候,价值是0。code:#include#in原创 2013-07-31 13:17:52 · 765 阅读 · 0 评论 -
hdu 2639 Bone Collector II (01背包,第k优解问题)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2639解题报告:关于第k优解得问题,前面看到过第k最小生成树,不过很伤心,一直没看懂其思想关于背包的问题,研究了一天了,说说思路,多开开一维数组,然后存放比赛名次,在这里每次更新的时候,我用a[]数组暂时存放其值,然后对a[]进行排序,如果a[]的前后两个值不同,就把他跟新的dp[]数组原创 2013-07-31 09:49:31 · 720 阅读 · 0 评论 -
poj 2063 Investment (完全背包)
题目链接:http://poj.org/problem?id=2063解题报告:题目的大意是John有一笔钱,然后他想买债券,不同的的债权有不同的价值,有不同的收益。每年的收益加本金可以去购买下一年的债券,问n年之后的最大收益。、很显然由于每种债券可以买多次,这是一个完全背包问题,知道这一点题目大致可以做出来,一般会TLE,因为每种债券是1000的倍数,所以可以做一个很大的优化,应原创 2013-07-31 16:38:12 · 765 阅读 · 0 评论 -
hdu 2955 Robberies (01背包)
RobberiesTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 7788 Accepted Submission(s): 2929Problem DescriptionThe aspiring Roy原创 2013-07-30 21:31:35 · 404 阅读 · 0 评论 -
hdu 2546 饭卡 (01背包)
饭卡Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 7020 Accepted Submission(s): 2357Problem Description电子科大本部食堂的饭卡有一种很诡异的设计,即在原创 2013-07-30 20:54:49 · 498 阅读 · 0 评论 -
hdu 1160 FatMouse's Speed (最长单调递减子序列+纪录路径)
链接:http://acm.hdu.edu.cn/showproblem.php?pid=1160解题报告:刚开始直接纪录路径怎么都过不了,不知道什么原因,后来开个数组纪录路径,就过了,不清楚什么原因啊!代码:#include#include#include#includeusing namespace std;int cnt,f[1005],temp[1005]原创 2013-08-06 17:00:43 · 613 阅读 · 0 评论