背包dp
ACMer_hades
没有伞的孩子只能够努力奔跑!
展开
-
poj(1014)——Dividing(多重背包)
终于学到了用二进制的多重背包,:)其实也不是那么难嘛题意:现在有价值从1到6的物品,并且告诉每种价值的物品有多少种,然后问你能否把物品分成两堆,然后每堆的价值都是总价值的一半。思路:恩,就是一道多重背包题,但是这里要用到二进制优化,否则的话就会T掉。(二进制优化后的背包的价值和重量都是系数乘上原来的那个)其实多重背包的实质就是一个01背包,因为我们只要把每种价值的所有数量的原创 2015-09-02 14:28:50 · 720 阅读 · 0 评论 -
hdu(2844)——Coins(多重背包+优化)
题意:现在给你n个物品,然后m,代表的是最大的容量。然后A[i]代表的是每个硬币的价值,c[i]代表的是每个硬币的数量,然后问你用这些硬币最多可以支付多少价值的钱。思路:就是一个多重背包,但是直接做的话会T掉,所以要加上二进制和完全背包的优化。完全背包的优化就是当物品重量*数量>=m(也就是我们最大要支付的钱时),那么就直接进行完全背包就好了。因为此时物品相当于有无限多件,我们只需原创 2015-09-06 09:52:49 · 591 阅读 · 0 评论 -
hdu(2639)——Bone Collector II(01背包第K优决策)
题意:现在给你n个数,以及最大的体积容量V,还有我们需要求的第K大的数。并且告诉你每个骨头的价值和体积。然后叫你求出第K大的总价值。(并且,这些价值中不能产生重复,也就是要去重)原创 2015-09-06 23:18:45 · 508 阅读 · 0 评论 -
hdu(1203)——I NEED A OFFER!
拖欠了好久的背包专题的题解呢。。。题意:中文题,也就是告诉你现在拥有n万元钱,然后每个学校有不同的申请费用a,并且有得到该学校的offer的可能性b。然后问你至少得到一份offer的最大概率是多少。思路:因为题目中说是至少得到一份offer,所以我们可以求它的反命题,求没有得到一份offer的最小概率是多少。定义:dp[i]为花费i元钱,没有得到一份offer的最小概率是多少。原创 2015-09-20 09:17:40 · 580 阅读 · 0 评论 -
hdu(2546)——饭卡(背包dp)
题意:中文题。。。也就是说,当卡内的余额大于等于5元时才可以买东西,即使消费完后是负的也是没有关系的。然后告诉你卡的余额,每种物品的价格,并且这里的每种物品我们都只能选择一次来买。问你卡上最小的余额是多少。思路:因为我们要使卡上的余额最少,所以我们要在余额大于等于5的时候花费的最多才行,然后我们再减去价格最大的那个物品的价格就是最小的余额了。这里我们把背包容量看成m-5原创 2015-09-20 09:42:59 · 594 阅读 · 0 评论 -
hdu(2955)——Robberies
题意:现在一个人想去抢劫银行,如果他被抓的概率低于P的话,那么他就是安全的。然后给出N,代表他想抢劫的银行的个数,然后N行,有Mj,Pj,代表的是银行有Mj这么多钱,然后被抓的概率是Pj。然后问你当被抓的概率低于P的时候,叫你输出他能够抢到的最多的钱。思路:感觉和I need an offer 这道题相似。原创 2015-09-20 23:00:10 · 790 阅读 · 0 评论 -
hdu(1171)——Big Event in HDU
题意:给出N个数据,然后每N行有两个数据V(代表的是该物品的价值),M(代表的是该物品的数量)。然后要把这所有的物品尽可能的两等分,然后问你怎样分才能使在把物品分成两堆的情况下,使它们两堆所含有的价值尽可能的相近。并输出两堆的价值。思路:第一次做的时候,我对这个思路并不是很清晰,现在,我可以很快的想出这个思路了。首先我们把每个价值的物品按照数量全都存到一个数组中,然后dp[j]原创 2015-09-20 23:20:40 · 441 阅读 · 0 评论 -
hdu(5501)——The Highest Mark
题意:问题描述2045年的SD省队选拔,赛制和三十年前已是完全不同。一场比赛的比赛时间有 tt 分钟,有 nn 道题目。第 ii 道题目的初始分值为 A_i(A_i \leq 10^{6})Ai(Ai≤106) 分,之后每过一分钟这道题目的分值会减少 B_iBi 分,并且保证到比赛结束时分值不会减少为负值。比如,一个人在第 xx 分钟结束时做出了第 ii原创 2015-10-11 20:52:59 · 567 阅读 · 0 评论