
动态规划--01背包
focus_best
这个作者很懒,什么都没留下…
展开
-
POJ 3624 Charm Bracelet(01背包)
POJ 3624 Charm Bracelet(01背包)http://poj.org/problem?id=3624题意:给你N个物品,每个具有Wi重量和Di价值,问你在不超过M的总重量前提下,能获得的最大价值是多少?分析:明显的01背包问题。令d[i][j]=x表选择完前i个物品后,总重量不超过j的前提下能获得的最大价值为x。则d[i][j] = max( d[i-1][j原创 2014-04-01 23:28:22 · 1002 阅读 · 0 评论 -
HDU 3496 Watch The Movie(二维01背包)
HDU 3496 Watch The Movie(二维01背包)http://acm.hdu.edu.cn/showproblem.php?pid=3496题意: 多多想去看电影,她列出了她喜欢看的N部电影的时长t[i]和在她心中的价值v[i],现在她爷爷规定她最多只能看L分钟的电影,且她必须正好选择M部电影来看,请问你,她如何选择能使所有电影的价值和最大? 输出这个最大值原创 2014-10-21 18:38:42 · 965 阅读 · 0 评论 -
POJ 3211 Washing Clothes(01背包)
POJ 3211 Washing Clothes(01背包)http://poj.org/problem?id=3211题意: 有m (1~10)种不同颜色的衣服总共n (1~100)件,Dearboy和她的girlfriend两个人要一起洗完全部衣服,为了预防色彩混合,他们每次只能同时洗同一种颜色的衣服,给出洗完每件衣服所需的时间time和它的颜色color,求出Dearboy和她的girlfriend最少用多少时间能洗完成全部衣服。分析: 由于每种颜色的衣服是分开洗的,原创 2014-10-30 16:14:15 · 1295 阅读 · 0 评论 -
HDU 2546饭卡(DP:01背包)
HDU 2456饭卡(DP:01背包)题意:用卡来买物品,当卡余额>=5时,可以任意买一件,即使买之后余额为负,给你n件物品的价格和余额,问你能使得余额最小是多少?分析: 设余额为m,令s=m-5,那么我们就要找使得容量为s的背包最后剩的空间最小的方法,找到之后再用这个剩余容量+5-最大的那个没有被选的商品价值就是最小余额.但是现在我们不知道最后需要减的那个物品应该是哪原创 2014-04-02 13:34:13 · 856 阅读 · 0 评论 -
POJ 1948 Triangular Pastures(01背包)
POJ 1948 Triangular Pastures(01背包)http://poj.org/problem?id=1948题意: 有n根木棍,问你用这n根木棍连接起来构成一个三角形的三边(每根木棍都必须用到),使得该三角形面积最大为多少?分析: 由于n其实应该是[1,sum(a[i])/2],其中sum(a[i])为所有木棍的长度和 )原创 2014-10-19 16:21:30 · 1068 阅读 · 0 评论 -
POJ 1837 Balance(01背包)
POJ 1837 Balance(01背包)http://poj.org/problem?id=1837题意: 有一个天平,天平左右两边各有若干个钩子,总共有C个钩子(每个钩子有相对于中心的距离,左负右正),有G个钩码,求将钩码全部挂到钩子上使天平平衡的方法的总数。其中可以把天枰看做一个以x轴0点作为平衡点的横轴. 且每个砝码的重量不一定相同,且一个钩子下可以挂任意个不原创 2014-10-19 15:15:12 · 1333 阅读 · 0 评论 -
HDU 1171 Big Event in HDU(01背包)
HDU 1171 Big Event in HDU(01背包)http://acm.hdu.edu.cn/showproblem.php?pid=1171题意: 给你N种物品,每种物品有m[i]个,且具有v[i]的价值,现在你要把所有的物品分成A和B两堆,且A堆的总价值要>=B堆的总价值 且 要使得A堆与B堆的价值尽量接近, 问你A和B堆的总价值分别为多少?分析:原创 2014-10-20 22:01:05 · 1018 阅读 · 0 评论 -
HDU 1864 最大报销额(01背包)
HDU 1864 最大报销额(01背包)http://acm.hdu.edu.cn/showproblem.php?pid=1864题意: 现有一笔经费可以报销一定额度的发票。允许报销的发票类型包括买图书(A类)、文具(B类)、差旅(C类),要求每张发票的总额不得超过1000元,每张发票上,单项物品的价值不得超过600元。现请你编写程序,在给出的一堆发票中找出可以报销的、不原创 2014-10-20 20:26:57 · 3184 阅读 · 0 评论 -
HDU 1203 I NEED A OFFER!(01背包)
HDU 1203 I NEED A OFFER!(01背包)http://acm.hdu.edu.cn/showproblem.php?pid=1203题意: Speakless很早就想出国,现在他已经考完了所有需要的考试,准备了所有要准备的材料,于是,便需要去申请学校了。要申请国外的任何大学,你都要交纳一定的申请费用,这可是很惊人的。Speakless没有多少钱,总共只攒原创 2014-10-20 21:23:23 · 1109 阅读 · 0 评论 -
UVA 10130 SuperSale(01背包)
UVA 10130 SuperSale(01背包)http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1071题意: 有M个人去市场买商品,共有N种商品,每种商品的价值v[i]和重量w[i]都已经给出. 对于每个人来说,他有一个能携带的物原创 2014-10-21 19:42:52 · 1145 阅读 · 0 评论 -
HDU 4182 Judges' response(01背包+TSP状态压缩DP)
HDU 4182 Judges' response(01背包+TSP)http://acm.hdu.edu.cn/showproblem.php?pid=4281题意:本题有两问:首先是有n-1个物品,每个物品一个重量w,然后每个人有一个重量上限M,问你最小需要派几个人才能收集完所有物品.第二问是:人和所有物品都有一个初始坐标,且人数无限制,在第一问的基础上,不超过人的负重的情况下,要原创 2014-04-03 23:17:51 · 1122 阅读 · 0 评论 -
POJ 2923 Relocation(状态压缩DP+DP:01背包)
POJ 2923 Relocation(状态压缩DP+DP:01背包)http://poj.org/problem?id=2923题意:有N件物品和两辆车,每辆车有个重量上限,现在要搬家且每次从老家到新家都是两车同时出动,问你至少需要多少次能搬完?分析: 首先本题先要求出所有物品合法的组合,即两车能一次装下的物品组合,然后在利用状态压缩DP求解. 首先对原创 2014-04-03 12:02:21 · 1183 阅读 · 0 评论 -
POJ 3628 Bookshelf 2(DP:01背包)
POJ 3628 Bookshelf 2(DP:01背包)http://poj.org/problem?id=3628题意:有N个数字和一个H上限,问你这N个数字怎么取(每个取或者不取)可以使得被取的数总和最小且超过N.求这个最小和与N的差值.分析:N个数字的和为S且S肯定>=H,我们只需要令X=S-H,然后求背包容量(这里的容量指的是数的价值和不超过X)为X的背包最多能放多少价值,那原创 2014-04-02 00:23:43 · 958 阅读 · 0 评论 -
HDU 2955 Robberies(DP:01背包)
HDU 2955 Robberies(DP:01背包)题意:给你一个被抓的概率P,要求去抢银行的被抓概率要小于P,每个银行有一个价值和一个被抓概率Pi,问你在被抓概率的前提下,能获得的最大价值.分析:由于各个银行的被抓概率独立,所以要用独立概率的乘法计算总的被抓概率. 假设抢了1,2,3银行,被抓概率分布为P1,P2,P3.那么总的被抓概率是:1-(1-P1)*(1-P2)*(1-P3).原创 2014-04-02 13:35:18 · 701 阅读 · 0 评论 -
HDU 3466 Proud Merchants(DP:01背包+贪心)
HDU 3466 Proud Merchants(DP:01背包+贪心)题意:同样有nKind个物品,每个物品有一个weighe[i]和value[i],但是如果你当前余额分析:首先对于任意两个物品i和j,如果我们只选他们中的一个或全不选,我们所需要的初始金钱是相同的.现在如果我们对于它们两个都选,初始金钱就跟选择的顺序有关了.比如:3 5 65 10 5两个物品,如果先1后2原创 2014-04-02 13:37:01 · 955 阅读 · 0 评论 -
HDU 2602 Bone Collector(DP:01背包)
HDU 2602 Bone Collector(DP:01背包)http://acm.hdu.edu.cn/showproblem.php?pid=2602题意:N个物品,每个物品有体积vi和价值valuei,问总体积不超过V能获得的最大价值.分析:基础01背包问题.AC代码:#include #include#include#include#includeusing原创 2014-04-02 18:34:33 · 744 阅读 · 0 评论 -
UVA 624 CD(DP:01背包)
UVA 624 CD(DP:01背包)题意:有N个物品,每个物品一个重量,现在问你在重量不超过W的前提下,如何选物品可以使得装的物品尽量多,并且要按输入顺序输出被装入的物品,已经总重量sum.分析:基础的01背包DP不过需要打印路径,需要熟练.由于dp[i][j] = max( dp[i-1][j],dp[i-1][j-wi]+wi ).所以用一个二维数组vis[i][j]表示dp[i原创 2014-04-02 19:21:37 · 839 阅读 · 0 评论 -
HDU 2639 Bone Collector II(DP:01背包)
HDU 2639 Bone Collector II(DP:01背包)http://acm.hdu.edu.cn/showproblem.php?pid=2639题意:同样有N个物品,每个物品有weight和value,问你在总重量不超过W的情况下,使得value值尽量大.得到的第K大的value值是多少?分析: 首先我们令dp[i][Wx][k]=y表示决策完前i个物原创 2014-04-03 00:22:25 · 878 阅读 · 0 评论 -
UVA 562 Dividing coins(DP:01背包)
UVA 562 Dividing coins(DP:01背包)题意:有N个不同价值的硬币,问你如何分成两堆,可以使得这两对的总价值之差的绝对值最小?分析:本题只需要用所有硬币的价值和sum除以2,即sum/2作为背包容量,看看最多能装多少,就得解.AC代码:#include #include#include#include#includeusing namespace原创 2014-04-02 20:51:11 · 885 阅读 · 0 评论 -
POJ 2184 Cow Exhibition(DP:01背包)
POJ 2184 Cow Exhibition(DP:01背包)http://poj.org/problem?id=2184题目:每头牛有一个S值和F值,现在要求你在N头牛里面选牛,使得被选牛的S值总和SS ,加上F值总和FF,即SS+FF最大.并且SS>=0且FF>=0.问你那个最大值是多少?分析:二维价值最大问题转化为一维价值最大问题.现在暂且加上所有S值都为正数,那么我们令d原创 2014-04-02 22:33:20 · 907 阅读 · 0 评论 -
HDU 2126 Buy the souvenirs(DP:01背包)
HDU 2126 Buy the souvenirs(DP:01背包)http://acm.hdu.edu.cn/showproblem.php?pid=2126题意:有N件物品,每个物品有一个价格,现在你手上有M元钱,问在你尽量买数量最多的物品的前提下,有多少种不同的购买方案.分析:详见刘汝佳:入门经典P163 print_ans()函数.其实这就是一个计算路径的问题,首先算出d原创 2014-04-03 14:40:18 · 753 阅读 · 0 评论 -
UVA 12563 Jin Ge Jin Qu hao(01背包变形:两个条件最优化)
UVA 12563 Jin Ge Jin Qu hao(01背包变形:两个条件最优化)http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4008题意: KTV里面有n首歌曲你可以选择,每首歌曲的时长都给出了. 对于每首歌曲,你最多只能唱原创 2014-10-22 14:31:35 · 5876 阅读 · 5 评论