【动态规划/DP】
文章平均质量分 58
s哒c
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
HDOJ 1248 寒冰王座 (完全背包)
http://acm.hdu.edu.cn/showproblem.php?pid=1248 题意:用面额为N的钞票能买到商品,因为店铺不找零,所以求“浪费”的最小金额。 思路:这道题是一道典型的完全背包题(也可以用别的方法解),将150,200,350作为物体体积,N做为背包容积。 #include #include #define N 11111 int type[4]={0原创 2012-08-06 12:06:58 · 1365 阅读 · 0 评论 -
HDOJ 2159 FATE (二维完全背包)
http://acm.hdu.edu.cn/showproblem.php?pid=2159 题意:通过啥k种怪,杀掉每种怪(每个)会产生要取得a经验并消耗b忍耐度,现求杀不超过s个怪,能否取得n经验,如果能求出保留的最大忍耐度是多少? 思路:二维完全背包求出最优解的情况,然后看>=n的里面剩下忍耐度最多的是多少。 #include #include using namespace原创 2012-09-30 23:39:44 · 1067 阅读 · 0 评论 -
HDOJ 1171 Big Event in HDU (多重背包) / (母函数)
http://acm.hdu.edu.cn/showproblem.php?pid=1171 题意:已知有N种价值的物品,每种价值为v,有m件,现将物品分为两部分,使每部分价值尽量相等(如果不等则使第一部分大于第二部分)。 多重背包: 思路:背包体积为总价值的一半,然后用多重背包求最大值。 #include #include int bag[333333]; int main(原创 2012-08-12 10:51:23 · 1308 阅读 · 0 评论 -
HDOJ 3732 Ahui Writes Word (多重背包)
http://acm.hdu.edu.cn/showproblem.php?pid=3732 这是一道很坑爹的题呀!!!一打眼看看以为是简单的01背包,然后就华丽的超时了……后来才发现被迷惑了!这是一道多重背包的问题。 这道题足以给做惯了经典多重背包,已经出定势思维的我们敲响警钟了! 这题一个特点:物品个数很大,背包的体积很大,但是物品的价值和花费都很小! 题意:有N个单词,总复杂度为C,原创 2012-08-13 10:43:04 · 1073 阅读 · 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 · 1181 阅读 · 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 · 1330 阅读 · 0 评论 -
HDOJ 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活 (多重背包)
http://acm.hdu.edu.cn/showproblem.php?pid=2191 题意:现有m种大米,每种价格为p,重量为h,有c袋。求用n元钱最多可买多重的大米? 思路:典型的多重背包。 为节约时间,将c拆分成2的n次方相加的形式(可以表示出所有情况!)。 #include #include int main() { int t,v,m,bag[111],val[4444原创 2012-08-10 10:39:42 · 1883 阅读 · 0 评论 -
HDOJ 1114 Piggy-Bank (完全背包)
http://acm.hdu.edu.cn/showproblem.php?pid=1114 题意:已知空罐重量、当前重量、每种硬币的重量和面值,要求根据给定的储钱罐重量求出储钱罐内至少含有多少钱。 思路:要求恰好装满的完全背包(求最小值) ----------------------------------------------------------------------------原创 2012-08-09 09:36:54 · 1640 阅读 · 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 · 916 阅读 · 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 · 951 阅读 · 1 评论 -
HDOJ 2602 Bone Collector (01背包)
http://acm.hdu.edu.cn/showproblem.php?pid=2602 题意:求最大价值 思路:典型的01背包 #include #include #define N 1111 int 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 · 647 阅读 · 0 评论 -
POJ 3624 Charm Bracelet (01背包)
http://poj.org/problem?id=3624 题意:求可能的最大值。 思路:典型的01背包。 #include #include int 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 · 1279 阅读 · 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 #include int va原创 2012-10-01 18:40:36 · 827 阅读 · 0 评论
分享