动态规划

动态规划一直是ACM竞赛中的重点,同时又是难点,因为该算法时间效率高,代码量少,多元性强,主要考察思维能力、建模抽象能力、灵活度。

本人动态规划博客地址:http://blog.csdn.net/cc_again/article/category/1261899

******************************************************************************************

动态规划(英语:Dynamic programming,DP)是一种在数学、计算机科学和经济学中使用的,通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。 动态规划常常适用于有重叠子问题和最优子结构性质的问题,动态规划方法所耗时间往往远少于朴素解法。

动态规划背后的基本思想非常简单。大致上,若要解一个给定问题,我们需要解其不同部分(即子问题),再合并子问题的解以得出原问题的解。 通常许多子问题非常相似,为此动态规划法试图仅仅解决每个子问题一次,从而减少计算量: 一旦某个给定子问题的解已经算出,则将其记忆化存储,以便下次需要同一个子问题解之时直接查表。 这种做法在重复子问题的数目关于输入的规模呈指数增长时特别有用。

动态规划问题满足三大重要性质

最优子结构性质:如果问题的最优解所包含的子问题的解也是最优的,我们就称该问题具有最优子结构性质(即满足最优化原理)。最优子结构性质为动态规划算法解决问题提供了重要线索。

子问题重叠性质:子问题重叠性质是指在用递归算法自顶向下对问题进行求解时,每次产生的子问题并不总是新问题,有些子问题会被重复计算多次。动态规划算法正是利用了这种子问题的重叠性质,对每一个子问题只计算一次,然后将其计算结果保存在一个表格中,当再次需要计算已经计算过的子问题时,只是在表格中简单地查看一下结果,从而获得较高的效率。

无后效性:将各阶段按照一定的次序排列好之后,对于某个给定的阶段状态,它以前各阶段的状态无法直接影响它未来的决策,而只能通过当前的这个状态。换句话说,每个状态都是过去历史的一个完整总结。这就是无后向性,又称为无后效性。

********************************************************************************************



动态规划分类有很多划分方法,网上有很多是按照状态来分,分为一维、二维、区间、树形等等。我觉得还是按功能即解决的问题的类型以及难易程度来分比较好,下面按照我自己的理解和归纳,把动态规划的分类如下:

一、简单基础dp

这类dp主要是一些状态比较容易表示,转移方程比较好想,问题比较基本常见的。主要包括递推、背包、LIS(最长递增序列),LCS(最长公共子序列),下面针对这几种类型,推荐一下比较好的学习资料和题目。

1、递推:

递推一般形式比较单一,从前往后,分类枚举就行。

简单:

hdu 2084 数塔 简单从上往下递推

hdu 2018 母牛的故事 简单递推计数

hdu 2044 一只小蜜蜂... 简单递推计数(Fibonacci)

hdu 2041 超级楼梯 Fibonacci

hdu 2050 折线分割平面 找递推公式

推荐:

CF 429B B.Working out 四个角递推

zoj 3747 Attack on Titans 带限制条件的计数递推dp

uva 10328 Coin Toss 同上题

hdu 4747 Mex 

hdu 4489 The King's Ups and Downs

hdu 4054 Number String

2、背包

经典的背包九讲:http://love-oriented.com/pack/

推荐博客:http://blog.csdn.net/woshi250hua/article/details/7636866

主要有0-1背包、完全背包、分组背包、多重背包。

简单:

hdu 2955 Robberies 01背包

hdu 1864 最大报销额 01背包

hdu 2602 Bone Collector 01背包

hdu 2844 Coins 多重背包

hdu 2159 FATE 完全背包

推荐:

woj 1537 A Stone-I  转化成背包

woj 1538 B Stone-II 转化成背包

poj 1170 Shopping Offers 状压+背包

zoj 3769 Diablo III 带限制条件的背包

zoj 3638 Fruit Ninja 背包的转化成组合数学

hdu 3092 Least common multiple 转化成完全背包问题

poj 1015 Jury Compromise 扩大区间+输出路径

poj 1112 Team Them UP 图论+背包

3、LIS

最长递增子序列,朴素的是o(n^2)算法,二分下可以写成o(nlgn):维护一个当前最优的递增序列——找到恰好大于它更新

简单:

hdu 1003 Max Sum

hdu 1087 Super Jumping!

推荐:

uva 10635 Prince and Princess LCS转化成LIS

hdu 4352 XHXJ's LIS 数位dp+LIS思想

srm div2 1000  状态压缩+LIS

poj 1239 Increasing Sequence 两次dp

4、LCS

最长公共子序列,通常o(n^2)的算法

hdu 1503 Advanced Fruits

hdu 1159 Common Subsequence

uva 111 History Grading 要先排个序

poj 1080 Human Gene Functions



二、区间dp

推荐博客:http://blog.csdn.net/woshi250hua/article/details/7969225

区间dp,一般是枚举区间,把区间分成左右两部分,然后求出左右区间再合并。

poj 1141 Brackets Sequence 括号匹配并输出方案

hdu 4745 Two Rabbits 转化成求回文串 

zoj 3541 The Last Puzzle  贪心+区间dp

poj 2955 Brackets

hdu 4283 You Are the One  常见写法

hdu 2476 String Printer 

zoj 3537 Cake

CF 149D Coloring Brackets

zoj 3469 Food Delivery



三、树形dp

比较好的博客:http://blog.csdn.net/woshi250hua/article/details/7644959

一篇论文:http://doc.baidu.com/view/f3b19d0b79563c1ec5da710e.html

树形dp是建立在树这种数据结构上的dp,一般状态比较好想,通过dfs维护从根到叶子或从叶子到根的状态转移。

hdu 4123 Bob's Race 二分+树形dp+单调队列

hdu 4514  求树的直径

poj 1655 Balancing Act 

hdu 4714 Tree2Cycle 思维

hdu 4616 Game

hdu 4126 Genghis Kehan the Conqueror MST+树形dp 比较经典

hdu 4756 Install Air Conditioning MST+树形dp 同上

hdu 3660 Alice and Bob's Trip 有点像对抗搜索

CF 337D Book of Evil  树直径的思想 思维

hdu 2196 Computer 搜两遍



四、数位dp

推荐一篇论文:http://wenku.baidu.com/view/d2414ffe04a1b0717fd5dda8.html

数位dp,主要用来解决统计满足某类特殊关系或有某些特点的区间内的数的个数,它是按位来进行计数统计的,可以保存子状态,速度较快。数位dp做多了后,套路基本上都差不多,关键把要保存的状态给抽象出来,保存下来。

hdu 2089 不要62 简单数位dp

hdu 3709 Balanced Number 比较简单

CF 401D Roman and Numbers 状压+数位dp

hdu 4398 X mod f(x) 把模数加进状态里面

hdu 4734 F(x)  简单数位dp

hdu 3693 Math teacher's homework 思维变换的数位dp

hdu 4352 XHXJ's LIS 数位dp+LIS思想

CF 55D Beautiful Numbers  比较巧妙的数位dp

hdu 3565 Bi-peak Numbers 比较难想

CF 258B Little Elephant and Elections 数位dp+组合数学+逆元



五、概率(期望) dp

推荐博客:http://www.cnblogs.com/kuangbin/archive/2012/10/02/2710606.html

推荐博客:http://blog.csdn.net/woshi250hua/article/details/7912049

推荐论文:

《走进概率的世界》

《浅析竞赛中一类数学期望问题的解决方法》

《有关概率和期望问题的研究》

一般来说概率正着推,期望逆着推。有环的一般要用到高斯消元解方程。期望可以分解成多个子期望的加权和,权为子期望发生的概率,即 E(aA+bB+...) = aE(A) + bE(B) +... 

ural 1776 Anniversiry Firework 比较基础

hdu 4418 Time travel  比较经典BFS+概率dp+高斯消元

hdu 4586 Play the Dice 推公式比较水

hdu 4487 Maximum Random Walk 

jobdu 1546 迷宫问题 高斯消元+概率dp+BFS预处理

hdu 3853 LOOPS 简单概率dp

hdu 4405 Aeroplane chess 简单概率dp,比较直接

hdu 4089 Activation 比较经典

poj 2096 Collecting Bugs 题目比较难读懂

zoj 3640 Help me Escape 从后往前,比较简单

hdu 4034 Maze 经典好题,借助树的概率dp

hdu 4336 Card Collector 状态压缩+概率dp

hdu 4326 Game  这个题状态有点难抽象



六、状态压缩dp

这类问题有TSP、插头dp等。

推荐论文:http://wenku.baidu.com/view/ce445e4f767f5acfa1c7cd51.html

推荐博客:http://blog.csdn.net/sf____/article/details/15026397

推荐博客:http://www.notonlysuccess.com/index.php/plug_dp/

hdu 1693 Eat the Trees  插头dp

hdu 4568 Hunter 最短路+TSP

hdu 4539  插头dp

hdu 4529 状压dp

poj 1185 炮兵阵地

poj 2411 Mandriann's Dream 轮廓线dp

hdu 3811 Permutation

poj 1038

poj 2441

hdu 2167

hdu 4026

hdu 4281



七、数据结构优化的dp

有时尽管状态找好了,转移方程的想好了,但时间复杂度比较大,需要用数据结构进行优化。常见的优化有二进制优化、单调队列优化、斜率优化、四边形不等式优化等。

1、二进制优化

主要是优化背包问题,背包九讲里面有介绍,比较简单,这里只附上几道题目。

hdu 1059 Diving 

hdu 1171 Big Event in Hdu

poj 1048 Follow My Magic

2、单调队列优化

推荐论文:http://wenku.baidu.com/view/4d23b4d128ea81c758f578ae.html

推荐博客:http://www.cnblogs.com/neverforget/archive/2011/10/13/ll.html

hdu 3401 Trade  

poj 3245 Sequece Partitioning 二分+单调队列优化

3、斜率优化

推荐论文:用单调性优化动态规划

推荐博客:http://www.cnblogs.com/ronaflx/archive/2011/02/05/1949278.html

hdu 3507 Print Article

poj 1260 Pearls

hdu 2829 Lawrence

hdu 2993 Max Average Problem

4、四边形不等式优化

推荐博客:http://www.cnblogs.com/ronaflx/archive/2011/03/30/1999764.html

推荐博客:http://www.cnblogs.com/zxndgv/archive/2011/08/02/2125242.html

hdu 2952 Counting Sheep

poj 1160 Post Office

hdu 3480 Division

hdu 3516 Tree Construction

hdu 2829 Lawrence



   
发表你的评论
 发表评论
 dlharry
dlharry2018-01-28 15:256楼回复
感谢作者大大...一定是做了大量的题才总结出来的吧
m0_37809890
m0_378098902017-08-31 12:265楼回复
收藏了,好厉害
u010228612
u0102286122015-01-17 18:594楼1条回复 回复
虽然你不用这个blog了,再来给你顶一下吧,可以在此blog上注明一下你现在的blog 的,这样大家都知道。
查看 11 条热评
01背包 ,完全背包,多重背包 dp (动态规划入门dp) sizaifsizaif2017年04月12日 22:441131
dp 动态规划,确实难啃, 光 最简单的 背包问题,就 费老大劲. 思想! 思想! 思想!   类似于递推, 局部找 关系.  背包问题,  就两种状态  放还是不放?   其实关于背包放不放的问题,...
我的总结-动态规划(DP) mo1302267724mo13022677242015年04月06日 20:501218
说到动态规划,最开始接触到这类型的题目是在教练上课的时候放了杭电OJ的名为“数塔”的题目,其实仅靠着没有任何算法基础而且对电脑编程处理问题的方式还不熟悉只会暴力加模拟的思维方式,着实没有除开暴力之外的...
状态压缩DP 小结 sinat_34336698sinat_343366982016年08月06日 16:11622
好久没更新博客了~ 最近学了一下状压DP的内容,感觉对状态压缩有一点了解,不过有时候做题的时候总感觉有些吃力。今天做了2道TSP的题,虽然知道套路,但是对细节处理做的还是很不好,主要原因就是因为我对...
非常好的动态规划总结,DP总结 mmc2015mmc20152017年06月22日 09:313419
总结的非常好,谢谢作者。 http://cppblog.com/menjitianya/archive/2015/10/23/212084.html 目录   一、动态规...
(转载)【DP专辑】ACM动态规划总结 uiqrmuiqrm2017年02月24日 19:34225
本文转载自http://blog.csdn.net/cc_again/article/details/25866971
[置顶] 【DP专辑】ACM动态规划总结 u013445530u0134455302014年08月19日 18:02987
动态规划一直是ACM竞赛中的重点,同时又是难点,因为该算法时间效率高,代码量少,多元性强,主要考察思维能力、建模抽象能力、灵活度。 本人动态规划博客地址:http://blog.csdn.net/c...
ACM动态规划总结(by utobe67) u010228612u0102286122015年01月17日 15:194298
动态规划一直是ACM竞赛中的重点, 也是难点(对于我这种水平),因为该算法时间效率高,代码量少,多元性强、灵活度高,主要考察思维能力、建模抽象能力。学了这么久动态规划,虽然还只是个菜菜= =,但还是想...
动态规划总结【模板】 u011676797u0116767972015年05月01日 23:491931
最长递增子序列 最大连续子序列和 最大连续子矩阵和 最大M个连续子段的和 最大不连续子序列和 最长公共子序列 最长回文子序列 最长回文子串 最小编辑距离 01背包 完全背包 多重背包 二维费用背包 切...
uva 11691 - Allergy Test(状态压缩+记忆化) u011328934u0113289342014年05月06日 20:401009
题目链接:uva 11691 - Allergy Test 题目大意:病人要检验过敏源,现在有k中过敏源需要检测,给出过敏源在人体内个一存活得天数,要求用最少的天数检测数过敏源,检测的条件即每个中...
AYITACM2016省赛第三周F - Cutting Sticks(切木头,区间电dp合并)
You have to cut a wood stick into pieces. The most affordable company, The Analog Cutting Machinery, ...
linyuxilulinyuxilu2016年05月04日 21:39220
DP专辑(转)进阶、分类 hhq420684hhq4206842014年10月10日 20:06848
转载请注明出处,谢谢。   http://blog.csdn.net/cc_again?viewmode=list          ----------  Accagain  2014年5月15...
ACM动态规划总结 dp qq_40161439qq_401614392017年10月11日 21:1660
转载请注明出处,谢谢。   http://blog.csdn.net/cc_again?viewmode=list          ----------  Accagain  2014年5月15...
hdu3672 Caves 树形dp zjtzyrczjtzyrc2015年10月12日 21:34322
题目大意:给定一个带权树与若干询问,找出一个以根为起点的遍历路径,使其路径权和小于询问值并且遍历点数尽量多。显然是树形dp。因为询问的值最大有5*10^6,点也有500个,因此dp状态不能定义为当前消...
【树形dp】hdu 2415 Bribing FIPA u012717411u0127174112015年07月23日 14:57552
hdu 2415 Bribing FIPA 题目: 给定由若干个树组成的森林, 树上的边是有向边, 树上的每个节点都有一个代价. 若要得到某个节点, 需要付出该节点对应的代价, 若该节点拥有后继, ...
POJ2411 轮廓线动态规划典型例题 u013480600u0134806002014年02月19日 19:313431
Poj2411 Mondriaan's Dream 给出一个n*m的矩形,然后用1*2大小的多米若骨牌去填充n*m的这个矩形,问有多少种填充方法。 分析:典型的轮廓线动态规划题目。详见刘汝佳新书:算法...
大楼扔鸡蛋问题 dp poj 3783 liuyanfeierliuyanfeier2015年12月20日 19:401236
题意分析: 经典题,小白书上的一道例题,4+2出了这道原题,我愣是以为是数学题,最后也没做出来。题意是这样的,给你N个鸡蛋(硬度一样),让你测鸡蛋的硬度,测量的方法就是从某栋M层的楼的某一层X上把鸡蛋...
动态规划DP问题分类和经典题型 u010398493u0103984932016年10月13日 20:485026
解题关键: 理解结构特征,抽象出状态,写成状态转移方程。 动态规划理念: 1.最优化原理    1951年美国数学家R.Bellman等人,根据一类多阶段问题的特点,把多阶...
【DP_树形DP专辑】【9月9最新更新】【from zeroclock's blog】
树,一种十分优美的数据结构,因为它本身就具有的递归性,所以它和子树见能相互传递很多信息,还因为它作为被限制的图在上面可进行的操作更多,所以各种用于不同地方的树都出现了,二叉树、三叉树、静态搜索树、AV...
liuqiyao_01liuqiyao_012013年01月07日 16:4715070
HDU-4714-树形dp zyz_3_14159zyz_3_141592016年12月15日 14:40131
题目大意:给定一棵树,每次删边或者增边代价为1,问把这棵树变成一个环最小代价是多少; 题目解析:删边肯定就要增边,所以答案的形式最后肯定是2*m+1,我们就需要求m的最小值;每次dfs的时候若果so...
ACM DP训练专辑 shiweisi_hqushiweisi_hqu2010年12月05日 14:42547
Pku acm 1163 the Triangle  动态规划题目总结(一)题目:http://acm.pku.edu.cn/JudgeOnline/problem?id=1163对于一个有数字组成的...
【算法之动态规划(一)】动态规划(DP)详解
一、基本概念 动态规划(dynamic programming)是运筹学的一个分支,是求解决策过程(decision process)最优化的数学方法。20世纪50年代初美国数学家R.E...
cangchencangchen2015年04月14日 17:0920721
DP专辑 动态规划 geniusluzhgeniusluzh2012年02月23日 21:19824
HDU 2577 简单线性DP http://acm.hdu.edu.cn/showproblem.php?pid=2577 这道题是简单的线性DP,状态很明确,就是当前的caps是on还是o...
从DP到基于树结构的动态规划立体匹配算法 xujx09xujx092017年03月30日 15:55900
如图1所示,分别是几种基本方法得到的视差图。其中AD往往比Census在物体边缘上的处理更好一些,边缘明显清晰,但是AD得到的噪声太多,AD-Census在物体边缘上的效果是二者的折中,但噪声更少,整...
[2016/7/28][dp]动态规划入门练习题 ZZU_RingoZZU_Ringo2016年07月28日 09:42392
卡题卡得好难受orz。发现自己还是连最基本的dp都没有掌握,泪目QAQ 花了一天时间阅遍资料,还是多少有点启发的。剩下的就得靠diffuse mode了。 下面开始愉快的刷题模式。一共四十多道,慢慢填...
动态规划dp详解 qq_35710556qq_357105562016年08月03日 20:24619
动态规划(dynamic programming)是运筹学的一个分支,是求解决策过程(decision process)最优化的数学方法。 分类 编辑 动态规划一般可分为线性...
动态规划练习题:概率DP总结,求解数学期望或概率的题目
来源:http://www.cnblogs.com/kuangbin/archive/2012/10/02/2710606.html 概率DP主要用于求解期望、概率等题目。 转移方程有时候比较灵活...
NOI2015NOI20152015年03月15日 16:20642
DP动态规划与记忆化搜索的联系与区别 u011639256u0116392562014年06月08日 20:272758
之前遇到好几个不会做的DP题,请教小伙伴,xi
DP动态规划——最大数字子串 someday7_toisomeday7_toi2012年08月10日 17:052205
http://acm.nankai.edu.cn/p1760.html 最大数字子串 Time Limit: 1500 ms    Memory Limit:10000 kB   J...
【数据结构与算法】 DP 动态规划 介绍 u010900754u0109007542017年02月13日 00:421000
最近在看算法导论。 DP全称是dynamic programming,这里programming不是编程,是一个表格保存之前的结果。 DP 是一种编程思想,主要用于解决最优解类型的问题。 其思路是为了...
dp动态规划分类详解 Renl1000Renl10002016年11月11日 10:312607
转自:http://blog.csdn.NET/cc_again/article/details/25866971 动态规划一直是ACM竞赛中的重点,同时又是难点,因为该算法时间效率高,代码...
动态规划经典最优子结构总结 lwtdzh999lwtdzh9992016年05月22日 23:251016
(1)0-1背包: 如果有一个背包,总载重量为Wt,有n个物品,每个物品重Wi,每个物品价值Ci,那么如何装才能让这个包里面东西的价值最高? dp[i][j]为前i个物品当中选择装进一个载重量为j的包...
动态规划之方格取数(多线程dp) GailyYelpGailyYelp2017年03月13日 00:27590
多线程简介多线程是为了使得多个线程并行的工作以完成多项任务,以提高系统的效率。线程是在同一时间需要完成多项任务的时候被实现的。 问题描述问题描述   设有N*N的方格图(N...
DP基础问题若干(ACM/ICPC) AcCryAcCry2011年07月15日 09:486089
【TOJ1765】最长上升子序列状态表示:dp[i]  以a[i]为数列的最后一个数时最长上升子序列的长度状态转移方程:if(a[i] >a[k])dp[i] = max(dp[i],dp[k]+1)...
划分数(动态规划(DP)) Zhao_XinhaoZhao_Xinhao2017年08月29日 17:05167
作者:码农场站主 链接:http://www.hankcs.com/program/m-n-recursive-division.html 原题 有n个无区别的物品,将它们划分为不超...
田忌赛马(Tian Ji -- The Horse Racing)中的动态规划以及贪心算法
这两天碰到一道看似很简单,但是实际做起来确实比较难的问题,在这里分析讨论一下。 题目:http://acm.hdu.edu.cn/showproblem.php?pid=1052 Tian Ji ...
lawrencesgjlawrencesgj2012年09月20日 20:588401
动态规划总结与思考 qiuzhijieluojianpingqiuzhijieluojianping2015年01月01日 10:57775
这是一篇关于动态规划的思考文章,主要讲了我对动态规划的一些思考与总结。...
算法笔记:动态规划(DP)初步 cr496352127cr4963521272017年09月11日 17:03613
专题:动态规划(DP)初步 内容来源:《挑战程序设计竞赛》(第2版)+《算法竞赛入门经典》(第2版)+网上资料整理汇总 一、引入         动态规划程序设计是对解最优化问题的一种途...
Longest Valid Parentheses,二维动态规划、一维动态规划、stack
一、二维动态规划 int longestValidParentheses(string s) {         int len=s.length(),maxLen=0;         bool v...
angelewingsangelewings2014年12月10日 10:31718
树形动态规划(树状DP)小结 txl16211txl162112015年04月29日 23:109818
树状动态规划定义 之所以这样命名树规,是因为树形DP的这一特殊性:没有环,dfs是不会重复,而且具有明显而又严格的层数关系。利用这一特性,我们可以很清晰地根据题目写出一个在树(型结构)上的记忆化搜索...
ACM_程序设计竞赛:DP:01背包 mijian1207mijianmijian1207mijian2016年05月05日 14:35531
01背包 设 n个重量和价值为wiw_i和viv_i的物品,从中选择总重量不超过W的物品,求挑选方案中价值总和最大 输入: n=4 (w, v) = {(2,3),(1,2),(3,4),(2,...
线性动态规划-文件排版 wait_neverwait_never2016年02月13日 11:41618
题目写电子邮件是有趣的,但不幸的是经常写不好看,主要是因为所有的行不一样长,你的上司想要发排版精美的电子邮件,你的任务是为他编写一个电子邮件排版程序。完成这个任务最简单的办法是在太短的行中的单词之间插...
acm 动态规划总结 ljtlyyljtlyy2016年05月29日 10:30358
动态规划  算法总体思想  动态规划算法与分治法类似,其基本思想也是将待求解问题分解成若干个子问题。 但是经分解得到的子问题往往不是互相独立的。不同子问题的数目常常只有多项式量级。在用分治法...
DP总结 willinglivewillinglive2014年08月16日 22:43933
T1、ACDream-EOF女神的打地鼠游戏 题目:http://acdream.info/onecontest/1022#problem-B 题解:http://acdream.info/t...
动态规划解TSP问题(状态压缩dp) qq547276542qq5472765422017年09月04日 15:382003
动态规划解TSP问题(状态压缩dp)TSP问题简述  给定图上若干个点,以及他们之间的距离,求一条距离和最小的回路,使得该回路正好经过每个点一次。TSP也叫旅行商问题、货郎担问题。。。状态转移方程  ...
动态规划(DP)优化之斜率优化讲解 PomeCatPomeCat2017年06月01日 16:23517
“DP的斜率优化——对不必要的状态量进行抛弃,对不优的状态量进行搁置,使得在常数时间内找到最优解成为可能。斜率优化依靠的是数形结合的思想,通过将每个阶段和状态的答案反映在坐标系上寻找解答的单调性,来在...
五大常用算法 ----DP 动态规划(Dynamic Programming)
一、基本概念     动态规划过程是:每次决策依赖于当前状态,又随即引起状态的转移。一个决策序列就是在变化的状态中产生出来的,所以,这种多阶段最优化决策解决问题的过程就称为动态规划。 二、基本思想...
Caroline424Caroline4242016年07月24日 22:352544
动态规划解决约瑟夫环问题 yangwenjun2017yangwenjun20172014年03月02日 18:381221
/* *约塞夫环的动态规划解法 *描述:从0到n-1编号,从1到m报数,每次报m的出局,求最后一个出局者 *建模:设dp[i]表示长度为i,从1到m报数子问题的解 *分析:对于长为i个进行编号,0.....
基于连通性状态压缩的动态规划--【插头DP】模板超级详细解释
断断续续卡了本公举三天的插头dp终于搞完了,貌似好多网友也都是学了好多天才搞懂的,特别用成就感,作为一个模板160+行的dp也是醉了 首先一定要看陈丹琪的论文!一个高中女孩能让许多大老爷们为...
zhou_yujiazhou_yujia2016年01月10日 21:531527
【DP入门】动态规划初步-几类子序列问题 Chen_yuazzyChen_yuazzy2017年08月06日 23:03166
动态规划初步—子序列问题,本文包括:最大连续子序列和,最大(长)上升子序列,最大(长)公共子序列1.最大连续子序列和找出一维数组中和最大的连续子序列,状态转移方程如下: sum=max(a[i]+s...
编辑距离算法——动态规划 fuyukaifuyukai2015年09月22日 18:05592
概念解释: 编辑距离,又称Levenshtein距离,是指两个字串之间,由一个转成另一个所需的最少编辑操作次数,如果它们的距离越大,说明它们越是不同,所以一般会用来表示两个字符串的相似度。允许的操作...
抄书问题2 (复制书稿) 单调性优化dp + 序列划分模型
3163 抄书问题 2  时间限制: 2 s  空间限制: 256000 KB  题目等级 : 钻石 Diamond 题解 ...
yskyskyer123yskyskyer1232016年03月24日 18:02533
动态规划(4):消除后效性 sun897949163sun8979491632016年07月31日 20:171029
无后效性:这是DP中最重要的一点, 他要求每个子问题的决策不能对后面其他未解决的问题产影响, 如果产生就无法保证决策的最优性, 这就是无后效性。往往需要我们找到一个合适的状态。上述的问题还有另外一个描...
高效面试之动态规划DP cqkxboy168cqkxboy1682014年10月26日 01:416552
解题关键: 理解结构特征,抽象出状态,写成状态转移方程。 题目索引 1.三角形找一条从顶到底的最小路径 分析 设状态为 f (i; j ),表示从从位置 (i; ...
动态规划入门之求解斐波那契数列 yanglr2010yanglr20102016年10月17日 20:18825
动态规划入门之求解斐波那契数列斐波那契数列,除了可以用跟递归方法来处理,还可以使用动态规划方法(DP)来求解。区别在于,如果使用动态规划方法,中间结果要“缓存”起来,以备后续使用,就可以将时间复杂度优...
ACM概率期望dp刷题总结 Dylan_FrankDylan_Frank2017年09月07日 22:10326
这个周刷了很多概率期望有关的dp题目,缘起2016青岛D题和取log的神操作题HDU 5988 2016青岛区域赛 (最小费用流)这类题目没有固定的模板,而且概率可以很容易插入一些经典模型,比如下面的...
【DP 训练】Folding, ACM/ICPC NEERC 2002, UVa1630
基于dp的字符串压缩 #include using namespace std; string str; int dp[110][110]; string fold[110][110]; int le...
qq_33583069qq_335830692016年10月07日 16:53425
zoj 1163 The Staircases 动态规划(dp) cherry_suncherry_sun2011年03月12日 23:421328
zoj 1163 The Staircases 动态规划(dp)背包问题 滚动数组 空间复杂度优化
POJ 3783 Balls(扔鸡蛋问题——DP动态规划)
传送门 BallsTime Limit: 1000MSMemory Limit: 65536KTotal Submissions: 892Accepted: 588DescriptionThe cl...
qingshui23qingshui232016年08月03日 14:561122
一道算法题,动态规划(dp: dynamic planning)
在牛客网刷题,无奈自己水平太菜,碰到这一题,弄了半天才弄懂…./* [编程题] 双核处理 一种双核CPU的两个核能够同时的处理任务,现在有n个已知数据量的任务需要交给CPU处理,假设已知CPU的每个核...
qq_33001647qq_330016472017年03月30日 19:281891
状态压缩dp总结 长期更新 HowardEmilyHowardEmily2017年07月22日 10:46257
状压dp本人做的题目真的不太多...至今还未理解到其中的精髓.所以一下的思路 描述中有存在不当的地方希望能够指出.另外,有些地方说的比较复杂,因为本弱鸡 对这些东西不是很理解.....多写点有助于理解...
动态规划-数组中求最长等差数列的长度 li563868273li5638682732016年04月24日 19:281442
题目:给定一个数组求出数组最长等差数列的长度。 举例:3,8,4,5,6,2 输出:5。 思路:利用区间dp来做,dp[i][diff]的意思是 intAr[0]到intAr[i],等差为dif...
动态规划总结——经典问题总结 qfikhqfikh2016年07月19日 13:082753
动态规划总结——经典问题总结 本文着重讨论状态是如何表示,以及方程是怎样表示的。当然,还附上关键的,有可能作为模板的代码段。但有的代码的实现是优化版的。 经典问题总结 最长上升子序列(LIS) 问题描...
动态规划之01背包问题讲解 su20145104009su201451040092016年05月04日 10:213426
给大家附上一个题目吧,便于理解 ctest有n个苹果,要将它放入容量为v的背包。给出第i个苹果的大小和价钱,求出能放入背包的苹果的总价钱最大值。 输入:每组测试数据第一行为2个正整数,...
线段树的总结 u013649253u0136492532014年08月19日 10:33360
线段树
DP——01背包问题使用迭代和动态规划(超详细——小白入门)
假设我是一个小偷,到达某个地方抢劫,并且没有人在家。 我为了放置物品而拿的麻袋最多可以承重5公斤。我要偷东西最大利润是多少?(PS纯属虚构)...
jushang0235jushang02352017年12月19日 13:57110
poj 动态规划题目列表及总结 y990041769y9900417692014年04月24日 08:2011125
此文转载别人,希望自己能够做完这些题目! 1.POJ动态规划题目列表            容易:1018, 1050, 1083, 1088, 1125, 1143, 1157, 116...
夕拾算法进阶篇:20)货币系统 (完全背包_动态规划DP)
题目描述 母牛们不但创建了他们自己的政府而且选择了建立了自己的货币系统。,他们对货币的数值感到好奇。传统地,一个货币系统是由1,5,10,20 或 25,50, 和 100的单位面值组成的。 母牛想知...
jiangpeng59jiangpeng592017年02月12日 10:16235
(动态规划DP算法)To the Max u013602059u0136020592015年03月19日 11:39329
Description Given a two-dimensional array of positive and negative integers, a sub-rectangle is...
动态规划:ZOJ1074-最大和子矩阵 DP(最长子序列的升级版)
解题心得: 1、是一个很明显的动态规划,但是一开始的思路有点混乱,所以在处理的时候可以参照一下的方法:               在输入的时候就将矩阵中的每一个数改写为前面I个数的和(这样才能...
yopilipalayopilipala2017年06月24日 15:19438
ACM-概率dp之入门 u011787119u0117871192014年10月16日 16:583457
ACM-概率dp

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值