【动态规划/DP】
文章平均质量分 58
s哒c
这个作者很懒,什么都没留下…
展开
-
HDOJ 1248 寒冰王座 (完全背包)
http://acm.hdu.edu.cn/showproblem.php?pid=1248题意:用面额为N的钞票能买到商品,因为店铺不找零,所以求“浪费”的最小金额。思路:这道题是一道典型的完全背包题(也可以用别的方法解),将150,200,350作为物体体积,N做为背包容积。#include#include#define N 11111int type[4]={0原创 2012-08-06 12:06:58 · 1302 阅读 · 0 评论 -
HDOJ 2159 FATE (二维完全背包)
http://acm.hdu.edu.cn/showproblem.php?pid=2159题意:通过啥k种怪,杀掉每种怪(每个)会产生要取得a经验并消耗b忍耐度,现求杀不超过s个怪,能否取得n经验,如果能求出保留的最大忍耐度是多少?思路:二维完全背包求出最优解的情况,然后看>=n的里面剩下忍耐度最多的是多少。#include#includeusing namespace原创 2012-09-30 23:39:44 · 997 阅读 · 0 评论 -
HDOJ 1171 Big Event in HDU (多重背包) / (母函数)
http://acm.hdu.edu.cn/showproblem.php?pid=1171题意:已知有N种价值的物品,每种价值为v,有m件,现将物品分为两部分,使每部分价值尽量相等(如果不等则使第一部分大于第二部分)。多重背包:思路:背包体积为总价值的一半,然后用多重背包求最大值。#include#includeint bag[333333];int main(原创 2012-08-12 10:51:23 · 1253 阅读 · 0 评论 -
HDOJ 3732 Ahui Writes Word (多重背包)
http://acm.hdu.edu.cn/showproblem.php?pid=3732这是一道很坑爹的题呀!!!一打眼看看以为是简单的01背包,然后就华丽的超时了……后来才发现被迷惑了!这是一道多重背包的问题。这道题足以给做惯了经典多重背包,已经出定势思维的我们敲响警钟了!这题一个特点:物品个数很大,背包的体积很大,但是物品的价值和花费都很小!题意:有N个单词,总复杂度为C,原创 2012-08-13 10:43:04 · 1024 阅读 · 0 评论 -
HDOJ 1203 I NEED A OFFER! (01背包)
http://acm.hdu.edu.cn/showproblem.php?pid=1203题意:Speakless现在有n万美元,他想申请出国,每个学校都有不同的申请费用a,Speakless得到这个学校offer的可能性b。求Speakless至少收到一份offer的可能性最大是多少。思路:至少收到一份offer的可能性最大是多少不好求,可以转化为求一分都收不到的可能性最小是多少。这样原创 2012-07-26 10:00:14 · 1120 阅读 · 0 评论 -
HDOJ 1059 Dividing (多重背包)
http://acm.hdu.edu.cn/showproblem.php?pid=1059题意:有一些被划分为1-6价值的石头,并一直每个价值有多少块,求可否将石头分成两份且价值相等。思路:求出总价值,除2。转化为大小为(总价值/2)的背包可否恰好装满的问题。#include#include#define maxn 444444//(1+2+3+4+5+6)*20000=420原创 2012-08-10 10:48:47 · 1263 阅读 · 0 评论 -
HDOJ 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活 (多重背包)
http://acm.hdu.edu.cn/showproblem.php?pid=2191题意:现有m种大米,每种价格为p,重量为h,有c袋。求用n元钱最多可买多重的大米?思路:典型的多重背包。为节约时间,将c拆分成2的n次方相加的形式(可以表示出所有情况!)。#include#includeint main(){ int t,v,m,bag[111],val[4444原创 2012-08-10 10:39:42 · 1820 阅读 · 0 评论 -
HDOJ 1114 Piggy-Bank (完全背包)
http://acm.hdu.edu.cn/showproblem.php?pid=1114题意:已知空罐重量、当前重量、每种硬币的重量和面值,要求根据给定的储钱罐重量求出储钱罐内至少含有多少钱。思路:要求恰好装满的完全背包(求最小值)----------------------------------------------------------------------------原创 2012-08-09 09:36:54 · 1526 阅读 · 0 评论 -
HDOJ 2955 Robberies (01背包)
http://acm.hdu.edu.cn/showproblem.php?pid=2955题意:一个抢到要抢银行,已知每个银行的现金数量和抢该银行被抓的概率。求在被抓概率小于P时能抢到的最大金额。思路:这道题比较特别,不能将概率作为物品的价值。需要将银行的总钱数看成背包,将银行的现金看成物品进行01背包。最后求比逃跑概率大的最大金额。#include#include#defin原创 2012-07-24 19:13:39 · 876 阅读 · 0 评论 -
HDOJ 2546 饭卡 (01背包)
http://acm.hdu.edu.cn/showproblem.php?pid=2546题意:卡内有m元钱,有n种菜可以买(每种菜只可以买一次),只要卡内金额大于等于5元就可以买任何菜(刷到负也可以)。求最少可使卡上的余额为多少。思路:最贵的一个菜一定是最后买,然后用01背包求(m-5)元钱可买的菜的最大金额,然后(m-最大金额-最贵的菜的价钱)即为所求。#include#inc原创 2012-07-24 14:49:37 · 891 阅读 · 1 评论 -
HDOJ 2602 Bone Collector (01背包)
http://acm.hdu.edu.cn/showproblem.php?pid=2602题意:求最大价值思路:典型的01背包#include#include#define N 1111int main(){ int t,n,v,val[N],vol[N],dp[N],i,j; while(scanf("%d",&t)==1) { wh原创 2012-07-24 14:42:00 · 599 阅读 · 0 评论 -
POJ 3624 Charm Bracelet (01背包)
http://poj.org/problem?id=3624题意:求可能的最大值。思路:典型的01背包。#include#includeint f[22222];int main(){ int m,n,w[4444],v[4444]; while(scanf("%d %d",&n,&m)==2) { int i,j; for(i=1;i<=n;i++)原创 2012-07-25 17:58:24 · 1217 阅读 · 1 评论 -
HDOJ 1712 ACboy needs your help (分组背包)
http://acm.hdu.edu.cn/showproblem.php?pid=1712题意:ACboy要在m天内学完n门课程,他花j天学第i门课程将获得A[i][j]的收益,求ACboy学完这n门课程可获得的最大收益。思路:每一门课程有m种情况可选,但是学每门课只能选一种情况,所以可以把每一门课分别看成一个组,然后用分组背包求解。#include#includeint va原创 2012-10-01 18:40:36 · 783 阅读 · 0 评论