![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
DP
文章平均质量分 71
M18
当你还不能写出自己满意的程序时,你就不要去睡觉。
展开
-
HDU 2602 Bone Collector (01背包问题)
一道01背包的基础题, 题意: 一个人,有N个物品,V容量的背包、N行为每个物品的价值,和体积 问在我背包尽量装满的情况下,获得最大的价值为多少、AC 代码:#include#include#includeusing namespace std;const int maxn=1100;int T;int N,V;in原创 2015-08-26 09:17:25 · 347 阅读 · 2 评论 -
HDU 2546 饭卡 (01背包问题)
还是基础的01背包,带了一点转换的思想、由于题意要求的是只有饭卡金额大于等于5元,便可买任何的菜、并且卡里面的金额可以为负数,求最少卡里会剩余多少钱。 由此我们可以按照dp的思想来求饭卡原本的余额m-5元 在n-1个道菜中,最多可以买的菜花掉的最大值,此时便剩余最后一道菜,也就是最贵的菜,并且我饭卡里的钱一定是大于等于5元的,所以我可以买最后一道菜、由此可知我们的答案便为m-dp[m-原创 2015-08-26 13:39:31 · 325 阅读 · 0 评论 -
POJ 3624 Charm Bracelet (01背包问题)
这道题与HDU 2602题的题意大概都是一样的,做了这道题的,可以再去做一次杭电的同样的题增加一下自己对01背包的理解、大概的题意是 我有承重为M的背包,给你N个重量为W[i],价值为D[i]的物品, 问,想要尽量装满背包能获得的最大价值为多少、很普通的01背包 枚举每一个重量,并依次找出当前w[i]的重量到我背包的最大重量,能获得的最大价值、需要注意的一点就是我找原创 2015-08-26 11:08:06 · 342 阅读 · 0 评论 -
UVA 562 Dividing coins(01 背包问题)
将基础的01背包 稍微的转化了一点,、题意就是让你求出N个硬币,然后分成两组求两组的差值最小为多少,不能为负、 大概思路就是如果我想要找到最小的值的话,那么我们首先是知道所有得数的和sum,既然想找到差值最小,只需要求以(sum/2) 位容量,每个硬币的值为单位容量、只要求出满足容量的最大值便可以了、 分析:因为是想要找出N个硬币分成两组合值的差值值的最小值,所以我们可以先求一组原创 2015-08-27 09:36:54 · 353 阅读 · 0 评论 -
HDU 2955 Robberies(01 背包)
一道转换了的01背包 题意:一个人想要抢劫,给你一个他被允许抢劫的概率P,只要我每次抢劫的被抓的概率不大于P便可以继续抢劫、 给你N行数,每行两个数,分别为抢劫第i个银行的钱数和抢劫被抓的概率、 问在被允许抢劫的概率的情况下最多抢劫多少钱、 思路:每多抢劫一个,我便要*他的概率,由于他是被抓的概率,所以我不确定要在哪一个一行被抓,虽然可以算、但是比较麻烦、 我们可以计算出不被抓的原创 2015-08-28 00:06:51 · 229 阅读 · 0 评论 -
UVA 624 CD(01背包问题)
其实,大概跟普通的基本01背包一样,就是问你在装满容积为V的背包时,得到的最大值、与普通01背包不同的则是需要你输出满足条件的路径值、只需在DP取值的时候标记一下便可以、经过尝试,发现这个路径有很多条的话,输出其中一条便可以、 写出了两种不同的AC代码,都可以借鉴一下、#include#include#includeusing namespace std;const i原创 2015-08-26 23:54:15 · 285 阅读 · 0 评论 -
POJ 2184 Cow Exhibition(01背包变形)
题意: 给你N头奶牛,每头奶牛都有两种属性S和F、,每种属性的属性值可以为负值、问你S的和和F的和的最大值为多少、思路: 背包转换,可以S的值看做容量F的值看做价值、 依照正常的背包做就可以了、最后只要遍历一遍所有和值找出最大值输出便可、 有一个问题需要注意,那就是有负值的问题 因为有负值,我们可以将他在数组里面的位置移位,移到为整数的位置、 也就是每个S值最小为-1000 最多有10原创 2015-08-29 14:24:57 · 245 阅读 · 0 评论 -
HDU 2639 Bone Collector II (背包 第K优解)
题意:给出N,V,K、 分别代表 物品的数量,背包的体积和满足条件的第K个大的值、 接下来两行分别有N个数字,分别代表着每个的价值,和体积、 最后求出第K个大的值为多少、思路:根据背包九讲中的思路来进行思考、 如果对背包不是特别理解的可以看一下背包九讲、 链接:http://blog.csdn.net/liuqiyao_01/article/details/8521776原创 2015-09-02 15:38:55 · 352 阅读 · 0 评论 -
HDU 3336 Count the string
题意:问你所有前缀包含本身出现的次数是多少、 首先,不得不在这给大家叙说一个问题,那就是这道题的数据很弱,很多有BUG的代码,也能过、在这,还是希望按照正确的思路,正确的做法来AC这道题、对于这道题,我本身也是做过了这道题的,其实我刚开始的思路完全错误,不过我AC了、 我朋友在做这道题的时候,问了我一组数据,就是abababab这种情况的时候输出20、思路:这道题的思路是KMP+DP的原创 2015-09-09 01:28:41 · 228 阅读 · 0 评论