背包dp
文章平均质量分 72
sprite_
这个作者很懒,什么都没留下…
展开
-
hdu 5534 Partial Tree(完全背包)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5534题目大意:有n个结点,n-1条边,现在要把这n个结点连成一棵树,给定了f(d),表示度为d的结点的价值是f(d)。现在问如何连能够使得Σf(d)的值最大。思路:首先我们知道n-1条边意味着有2*n-2个度,那么求这个价值最大就是对这些度的分配问题。想法很巧妙,为了解决出原创 2015-11-05 12:49:36 · 562 阅读 · 0 评论 -
2015 南阳CCPC hdu5543 Pick The Sticks(01背包)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5543题目大意:在一个狭长的容器里面放一些长木棍,每根木棍的长度和价值都不同,现在通过放置木棍使得能够得到的总价值最大。木棍放置不能重叠,对于任意一根木棍,只要他的重心落在容器里面,就算有一部分出去了,也算能够放下。题目范围:N思路:对于这样一个问题,如果范围小的话,我们大可原创 2015-11-13 10:48:48 · 971 阅读 · 0 评论 -
hdu 1712 ACboy needs your help(分组背包)
ACboy needs your helpTime Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 4903 Accepted Submission(s): 2646Problem DescriptionACboy ha原创 2015-07-16 10:26:53 · 669 阅读 · 0 评论 -
hdu2159 FATE(二维背包)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2159题目大意:中文题。思路:完全背包。但是他有两个限制条件,所以考虑用二维费用的背包。dp[u][v],u,v分别代表两个不同的限制条件。如果对于第i个物品,条件1和条件2所需的代价为a[i]和b[i]。那么就有 dp[i][u][v]=max(dp[i-1][u][v原创 2015-09-18 21:34:42 · 494 阅读 · 0 评论 -
hdu2639 Bone Collector II(01背包)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2639题目大意:求出背包里面第k大的价值。思路:如果是求最大价值,可以直接利用01背包求得,此时状态方程为dp[j]=max(dp[j],dp[j-w[i]]+v[i])。现在是求第k大的,显然不能直接套用了,但还是利用背包,只是这时就要加一维来限制条件了。我可以设一个d原创 2015-09-24 10:14:42 · 412 阅读 · 0 评论 -
hdu 3033 I love sneakers! (分组背包)
I love sneakers!Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 4460 Accepted Submission(s): 1821Problem DescriptionAfter months原创 2015-07-17 11:57:45 · 647 阅读 · 0 评论 -
hdu1059 Dividing(多重背包+二进制优化)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1059题目大意:有价值分别为1~6的弹珠,不同价值的弹珠有不同的数量。两个人要分成相同的价值,问能不能分成功。思路:典型的多重背包。加上二进制优化。代码:#include#includeint max(int a,int b){ if(a>b)return a;原创 2015-09-18 11:05:11 · 1923 阅读 · 0 评论 -
hdu2844 Coins(多重背包+二进制优化)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2844题目大意:有n种价值不同的硬币,他们的数量有限但不相同。现在要求出硬币组合,可组合出多少种不同价格。思路:第一反应是母函数,不过数据量有点大,没敢尝试。可以用背包。通过多重背包,dp[i]就代表价格为i时的最大组合价格。如果dp[i]==i,表明能够组合出这个价格,否则原创 2015-09-18 14:10:08 · 1661 阅读 · 0 评论 -
hdu2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活(多重背包)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2191题目大意:中文题。思路:简单的多重背包。代码:#include#include#include#include#includeusing namespace std;int max(int a,int b){ if(a>b)return a;原创 2015-09-18 15:50:50 · 783 阅读 · 0 评论 -
hdu2955 Robberies(01背包)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2955题目大意:有个人要去抢劫银行,在这之前他对自己抢劫的行为进行了风险估计,抢不同的银行获得的前不同风险也不同。抢银行时他有一个最高风险的上限,现在问在不超过最高风险的情况下(不被抓),他最多能抢多少钱。思路:题目给了两个变量,风险指数和价值,很容易想到就是01背包。如果我原创 2015-09-24 16:21:00 · 376 阅读 · 0 评论 -
hdu1203 I NEED A OFFER!(01背包)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1203题目大意:中文题。思路:有上一题做铺垫,这题就简单多了。计算花费为j时最小的被拒绝的概率P,最后答案就是1-P,表示最大的被接受的概率。代码:#include#includedouble min(double a,double b){ if(a<b)retu原创 2015-09-24 16:30:04 · 82 阅读 · 0 评论 -
ZOJ 3905 Cake(dp)
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3905题目大意:有n块蛋糕,Alice和Bob分别可以拿n/2块。对于某一块蛋糕,两个人所认为的价值是不一样的。取蛋糕的规则是:Alice从中选取拿出两块蛋糕,然后让Bob先选,Bob会选他认为价值高的蛋糕。现在问Alice怎么选择才能让他自己得到的原创 2015-10-12 20:52:23 · 370 阅读 · 0 评论 -
hdu 5501 The Highest Mark(变形01背包)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5501题目大意:有n道题目,每道题目初始时候都有一个价值,如果在x分钟后做出这道题目,那么得到的分数就会减少x*b[i],而做一道题目所花的时间c[i]也不同。现在问在限定的时间里面,怎么样做题目能够获得最大的价值。思路:题目要求获得最大的价值,但是解决一道题目的价值随着时间的变原创 2015-10-13 21:09:59 · 559 阅读 · 0 评论