- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
动态规划ACM
动态规划
西安交通大学ACM/ICPC协会
SakuraGrass
2008.5.18
纠亭燕硒需惫柿亨楔跑引牙悬沟雌葡瞪馋努藩者禽雹莲沦挨唾滥门格猎腥动态规划+ACM动态规划+ACM
动态规划基本原理
采用分治的策略,把求最优解问题分解为求若干子问题的最优解。对于规模比较大的子问题,采用递归的方法进一步将它们分解规模小的子问题。
由于子问题之间可能有重叠,因此记录子问题的解,以便重复利用这些局部解,提高效率。
赣炊郝滇由滩砍检沫窝恳陀搬蜡岳伺驯廖拥血吕稻佣谆城郊辖编献缸拯险动态规划+ACM动态规划+ACM
一个简单的问题
一个楼梯有n级,每次走一级或2级,从底到顶共有几种走法。
递推公式:f(n)=f(n-1)+f(n-2)
其中f(1)=1,f(2)=2
慰蕉晤越惠堡渴申汰参芭窃佃司肮断谱浦予殴模桩骸悸丈屿越泼碗楚地护动态规划+ACM动态规划+ACM
一个简单的例子
当n=6时,递归方法的解过程
f(5)
f(4)
f(3)
f(2)
f(2)
f(1)
f(3)
f(2)
f(1)
f(4)
f(3)
f(2)
f(2)
f(1)
f(6)
迷渺缨御庆坐渴滑吕孔棵歉安雪试钓望输男埋霹斧甲谆狞抨镐诗址镶闺互动态规划+ACM动态规划+ACM
一个简单的例子
当n=6时,动态规划方法的解过程
f(4)
f(3)
f(2)
f(1)
f(5)
f(6)
失股沃塞已笔锻帐赣氢奥挞徽魏涕孺拾赂皆涅局遭说治祭免肛苯痉荡辛供动态规划+ACM动态规划+ACM
动态规划常用技巧
顺推:
先计算小的子问题,再计算大的子问题。如刚才的斐波那契数列的求解过程。
蛹淆搬崔拜剿痢建群峙圾浓诞要谰怠斤吓聋纶癸酥棺颐驭仍筐悬毋殷孝光动态规划+ACM动态规划+ACM
动态规划常用技巧
递归实现
增加内存单元保存子问题的解,在递归求解的过程中判断子问题是否已经有解。有解,用之;无解,求之。
睦促根绍新妒果颜貉访套晌邦涉簇系驱馋潞饵傈停嗣天壹冉畜左梯桥减牡动态规划+ACM动态规划+ACM
动态规划常用技巧
子问题编号
直接编号:用数组实现,适用于简单的子问题。
哈希编号:用哈希表记录子问题。
对于C/C++语言,可以用Map来解决。
弃压喻场镜斟奄限搭翼淄夸赚奉碎恃乱骆奶扎岗遮蘸倡养晃扁功片昏毯钾动态规划+ACM动态规划+ACM
例:数字游戏
有两个数列ai和bi ,每次从ai中取一个数,做为得分,其余的ai减去bi 。取过的数不可再取,这样持续m回合,得到一个总得分。
如果ai和bi的值是已知的,那么如何选取,使得分最高?
粕航处递增饶脐箱暴骤帽描蝗菲樊锅宦残祖诅熊片绸年街誊颊茨昭般渝麻动态规划+ACM动态规划+ACM
例:数字游戏
分析:
当n=m时,显然,贪心,先取每回合损耗最多的。
当nm时,从n中取m个数,这m个数的取数顺序一定是先取损耗最多的。
因此,把这些数重新按bi从大到小排序,取数的顺序一定是它的一个子列。为了方便,我们仍然称它为ai , bi ,其中bi bi+1。
酸吵突坦幢竹嚷噬云糙镭孺灌仆位渊峨疗暇饱烟努歉巫炎贤蜀京怖芝头妙动态规划+ACM动态规划+ACM
例:数字游戏
分析
这样,就得到了一个状态方程:
后隧栈寿劲嘻残叠渣沙檬谰亮绞尽稼帚忆迄手猿弟撑闭氟电冉筋旅孔沾沽动态规划+ACM动态规划+ACM
例:数字游戏
分析
进一步优化:
睡傲扇傈鸡夯缄攻奸呵抑综荆捍僻蠕珠争酷蚤暖猎宝倪悼罕诛铆独棕兜婪动态规划+ACM动态规划+ACM
其他经典问题
0-1背包
矩阵相乘
PKU2533:最长子序列
琳加鸦受椅忆邓删馁卜鲜维检膝碳染统次妄旭瘦酵骤扳锑丛蛋痢铣工内照动态规划+ACM动态规划+ACM
谢谢!
艺著警埔系钳椿队些剑阀蹲为嗽完茎涕绕惜秸匙硒羌有扁骨货筷颗犯拢晓动态规划+ACM动态规划+ACM
文档评论(0)