摘要: 这是一篇老文章,不过由于无法找到最初的发文地址,这里就不能粘贴原文网址了。本站转载此文与ACMer们共勉。感谢acmerfight供稿。题解:还记得2年前的一个晚上,我和一个女孩一起写完了这篇文章。写完后,她哭了,我笑了。然后,她走了,我哭了。2年后,我又找到她,这次,我没有让她走掉... 阅读全文
posted @ 2017-02-20 22:02 pengwill 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 动态规划总结(01背包 完全背包 多重背包)一、学习资料1.UVA DP 入门专题 2.夜深人静写算法(二) - 动态规划 3.算法之动态规划 4.什么是动态规划?动态规划的意义是什么? 5.01背包问题和完全背包问题 6.背包九讲二、练习题目1.01背包练习 2.完全背包 多重背包... 阅读全文
posted @ 2017-02-20 21:13 pengwill 阅读(400) 评论(0) 推荐(0) 编辑
摘要: HDOJ(HDU).2844 Coins (DP 多重背包+二进制优化)题意分析先把每种硬币按照二进制拆分好,然后做01背包即可。需要注意的是本题只需要求解可以凑出几种金钱的价格,而不需要输出种数。因此用0表示不可以,1表示可以。最后对dp数组扫描一遍即可。代码总览#include ... 阅读全文
posted @ 2017-02-20 18:55 pengwill 阅读(176) 评论(0) 推荐(0) 编辑
摘要: HDOJ(HDU).1059 Dividing(DP 多重背包+二进制优化)题意分析给出一系列的石头的数量,然后问石头能否被平分成为价值相等的2份。首先可以确定的是如果石头的价值总和为奇数的话,那么肯定不能被平分。若为偶数,则对valuesum/2为背包容量,全体石头为商品做完全背包... 阅读全文
posted @ 2017-02-20 18:53 pengwill 阅读(164) 评论(0) 推荐(0) 编辑
摘要: HDOJ(HDU).2191. 悼念512汶川大地震遇难同胞――珍惜现在,感恩生活 (DP 多重背包+二进制优化)题意分析首先C表示测试数据的组数,然后给出经费的金额和大米的种类。接着是每袋大米的价格,重量和袋数。 每种大米的数量是有限的,应该能看出是多重背包的问题。关键是多重背包的... 阅读全文
posted @ 2017-02-20 18:50 pengwill 阅读(135) 评论(0) 推荐(0) 编辑
摘要: HDOJ(HDU).2159 FATE (DP 带个数限制的完全背包)题意分析与普通的完全背包大同小异,区别就在于多了一个个数限制,那么在普通的完全背包的基础上,增加一维,表示个数。同时for循环多写一层即可。#include #include #include #include #... 阅读全文
posted @ 2017-02-20 16:55 pengwill 阅读(230) 评论(0) 推荐(0) 编辑
摘要: HDOJ(HDU).4508 湫湫系列故事――减肥记I (DP 完全背包)题意分析裸完全背包代码总览#include #include #include #include #define nmax 100005#define nn 105using namespace std;int... 阅读全文
posted @ 2017-02-20 16:44 pengwill 阅读(136) 评论(0) 推荐(0) 编辑
摘要: HDOJ(HDU).1284 钱币兑换问题 (DP 完全背包)题意分析裸的完全背包问题代码总览#include #include #include #include #define nmax 33000#define ll long longusing namespace std;l... 阅读全文
posted @ 2017-02-20 16:41 pengwill 阅读(171) 评论(0) 推荐(0) 编辑
摘要: HDOJ(HDU).1114 Piggy-Bank (DP 完全背包)题意分析裸的完全背包代码总览#include #include #include #include #define nmax 100000#define INF 0x3f3f3f3fusing namespace ... 阅读全文
posted @ 2017-02-20 16:37 pengwill 阅读(133) 评论(0) 推荐(0) 编辑
摘要: HDOJ(HDU).3466 Dividing coins ( DP 01背包 无后效性的理解)题意分析要先排序,在做01背包,否则不满足无后效性,为什么呢? 等我理解了再补上。代码总览#include #include #include #include #define nmax ... 阅读全文
posted @ 2017-02-20 16:28 pengwill 阅读(189) 评论(0) 推荐(0) 编辑
摘要: POJ.3624 Charm Bracelet(DP 01背包)题意分析裸01背包代码总览#include #include #include #include #define nmax 13000#define nnmax 3500using namespace std;int d... 阅读全文
posted @ 2017-02-20 16:22 pengwill 阅读(96) 评论(0) 推荐(0) 编辑
摘要: HDOJ(HDU).1864 最大报销额题意分析题目有点问题,原题中说的单项物品的价值不得超过600元应该是单类物品的价值不能超过600元。一开始以为是01背包,后来按贪心写过了。一张一张发票处理,读入一整张发票的数据。然后检查一下里面是否有不能报销的类别(即除ABC)以外的其他类。... 阅读全文
posted @ 2017-02-20 16:15 pengwill 阅读(125) 评论(0) 推荐(0) 编辑
摘要: HDOJ(HDU).2546 饭卡(DP 01背包)题意分析首先要对钱数小于5的时候特别处理,直接输出0。若钱数大于5,所有菜按价格排序,背包容量为钱数-5,对除去价格最贵的所有菜做01背包。因为这时候还剩下5块钱,直接买最贵的那个菜,就可以保证剩下来的钱数是最小的。代码总览#inc... 阅读全文
posted @ 2017-02-20 16:08 pengwill 阅读(130) 评论(0) 推荐(0) 编辑
摘要: HDOJ(HDU).2602 Bone Collector (DP 01背包)题意分析01背包的裸题#include #include #include #include #define nmax 1005using namespace std;int v[nmax],w[nmax]... 阅读全文
posted @ 2017-02-20 16:02 pengwill 阅读(96) 评论(0) 推荐(0) 编辑