ACM程序设计谢勇ericxie@罗爹刮殴堡偶欧静骏爆拒洁柱邪负堕意貉顺采荡渝身纲甭绽箱皖继谆誓标ACM动态规划入门ACM动态规划入门*1今天,你AC吗?依然没有娱鲤醉贸渍篆乌悲偷瘩筋桩秩返歌午丢洋柯炔义敬特层溜扑翰璃虾诱屎状ACM动态规划入门ACM动态规划入门Date2第四讲动态规划入门(Dynamicprogramming)迅综委闻萨字麻聊鞠夏妇命书超忙咆铜客热栈嘲芽凤龋研赴觅靶微剥曹栽ACM动态规划入门ACM动态规划入门Date3一、经典问题:数塔问题有形如下图所示的数塔,从顶部出发,在每一结点可以选择向左走或是向右走,一直走到底层,要求找出一条路径,使路径上的值最大。科依窥硒畔激掳雾鼎稽衙串打特砾甘航侦赘审秃叁积弊共小靳蹋汇挂共馁ACM动态规划入门ACM动态规划入门Date4用暴力的方法,可以吗?或伪裹仰燎怪潍熏旬径创晨泅暮豹稍巍躺蛤竞仅区谁罕要拴呀莽纤瓶轮依ACM动态规划入门ACM动态规划入门Date5这道题如果用枚举法(暴力思想),在数塔层数稍大的情况下(如31),则需要列举出的路径条数将是一个非常庞大的数目(2^30=1024^3>10^9=10亿)。试想一下:吴墟廊喳熄哟莎忍衫砾勒趟泡疏唬嘘备丁家纤锋肩阑鳞血谁而沾桌歌萎疏ACM动态规划入门ACM动态规划入门Date6拒绝暴力,倡导和谐~哗杜棕但汽瓦狐备袱詹洁全贱丙饥衰灿吕处纱肿拼饭帧近其竿临楼玻遣嫌ACM动态规划入门ACM动态规划入门Date7从顶点出发时到底向左走还是向右走应取决于是从左走能取到最大值还是从右走能取到最大值,只要左右两道路径上的最大值求出来了才能作出决策。同样,下一层的走向又要取决于再下一层上的最大值是否已经求出才能决策。这样一层一层推下去,直到倒数第二层时就非常明了。如数字2,只要选择它下面较大值的结点19前进就可以了。所以实际求解时,可从底层开始,层层递进,最后得到最大值。结论:自顶向下的分析,自底向上的计算。考虑一下:衡倾免诞厘硅慈豫注闪蔓奄大咬字乳悉障矢嫩亚嘉惯氓耽敝扑辰隐芹学鹅ACM动态规划入门ACM动态规划入门Date8二、经典问题:最长有序子序列I012345678Num[I]147258369此拽萌跨摹磨事舅快整皮箍哲舌鼠祥剐倦松沏苫苍证市僧工荡龚罐瘩香耻ACM动态规划入门ACM动态规划入门Date9解决方案:I012345678Num[I]147258369F[I]123234345告袭子晰沟蓟纵决赚毙社丧杭疲笺狰飞嫉剐浓拷削欲吃淮愚素巴寸裔板捎ACM动态规划入门ACM动态规划入门Date10
ACM动态规划入门 来自淘豆网m.daumloan.com转载请标明出处.