随笔分类 - 算法---动态规划
摘要:对于动态规划,之前学习过了,但是总感觉理解不深刻。今天正好讲道动态规划算法,感觉有了一些新的认识和看法,打算详细的写下来,一是帮助自己理清,二是希望给刚刚接触的ACMer一个简明的理解思路吧。大话算法之动态规划——初探一、引例: 数塔问题之所以好多地方均以这个东西作为例子,我想能是因...
阅读全文
摘要:动态规划总结(01背包 完全背包 多重背包)一、学习资料1.UVA DP 入门专题 2.夜深人静写算法(二) - 动态规划 3.算法之动态规划 4.什么是动态规划?动态规划的意义是什么? 5.01背包问题和完全背包问题 6.背包九讲二、练习题目1.01背包练习 2.完全背包 多重背包...
阅读全文
摘要:HDOJ(HDU).2844 Coins (DP 多重背包+二进制优化)题意分析先把每种硬币按照二进制拆分好,然后做01背包即可。需要注意的是本题只需要求解可以凑出几种金钱的价格,而不需要输出种数。因此用0表示不可以,1表示可以。最后对dp数组扫描一遍即可。代码总览#include ...
阅读全文
摘要:HDOJ(HDU).1059 Dividing(DP 多重背包+二进制优化)题意分析给出一系列的石头的数量,然后问石头能否被平分成为价值相等的2份。首先可以确定的是如果石头的价值总和为奇数的话,那么肯定不能被平分。若为偶数,则对valuesum/2为背包容量,全体石头为商品做完全背包...
阅读全文
摘要:HDOJ(HDU).2191. 悼念512汶川大地震遇难同胞――珍惜现在,感恩生活 (DP 多重背包+二进制优化)题意分析首先C表示测试数据的组数,然后给出经费的金额和大米的种类。接着是每袋大米的价格,重量和袋数。 每种大米的数量是有限的,应该能看出是多重背包的问题。关键是多重背包的...
阅读全文
摘要:HDOJ(HDU).2159 FATE (DP 带个数限制的完全背包)题意分析与普通的完全背包大同小异,区别就在于多了一个个数限制,那么在普通的完全背包的基础上,增加一维,表示个数。同时for循环多写一层即可。#include #include #include #include #...
阅读全文
摘要:HDOJ(HDU).4508 湫湫系列故事――减肥记I (DP 完全背包)题意分析裸完全背包代码总览#include #include #include #include #define nmax 100005#define nn 105using namespace std;int...
阅读全文
摘要:HDOJ(HDU).1284 钱币兑换问题 (DP 完全背包)题意分析裸的完全背包问题代码总览#include #include #include #include #define nmax 33000#define ll long longusing namespace std;l...
阅读全文
摘要:HDOJ(HDU).1114 Piggy-Bank (DP 完全背包)题意分析裸的完全背包代码总览#include #include #include #include #define nmax 100000#define INF 0x3f3f3f3fusing namespace ...
阅读全文
摘要:HDOJ(HDU).3466 Dividing coins ( DP 01背包 无后效性的理解)题意分析要先排序,在做01背包,否则不满足无后效性,为什么呢? 等我理解了再补上。代码总览#include #include #include #include #define nmax ...
阅读全文
摘要:POJ.3624 Charm Bracelet(DP 01背包)题意分析裸01背包代码总览#include #include #include #include #define nmax 13000#define nnmax 3500using namespace std;int d...
阅读全文
摘要:HDOJ(HDU).2546 饭卡(DP 01背包)题意分析首先要对钱数小于5的时候特别处理,直接输出0。若钱数大于5,所有菜按价格排序,背包容量为钱数-5,对除去价格最贵的所有菜做01背包。因为这时候还剩下5块钱,直接买最贵的那个菜,就可以保证剩下来的钱数是最小的。代码总览#inc...
阅读全文
摘要:HDOJ(HDU).2602 Bone Collector (DP 01背包)题意分析01背包的裸题#include #include #include #include #define nmax 1005using namespace std;int v[nmax],w[nmax]...
阅读全文
摘要:UVA.10192 Vacation (DP LCS)题意分析某人要指定旅游路线,父母分别给出了一系列城市的旅游顺序,求满足父母建议的最大的城市数量是多少。对于父母的建议分别作为2个子串,对其做LCS处理,最后的结果即为所求。核心状态转移方程: if(c1[i] == c2[j]) ...
阅读全文
摘要:UVA.357 Let Me Count The Ways (DP 完全背包)题意分析与UVA.UVA.674 Coin Change是一模一样的题。需要注意的是,此题的数据量较大,dp数组需要使用long long 类型;另外输出方案为1个和多个的时候,语句是不同的。代码总览/* ...
阅读全文