(HDUACM201309版_05)动态规划研究.ppt

ACM程序设计;11月份比赛;每周一星(4):;知识回顾;第五讲;一、经典问题:数塔问题 ;用暴力的方法,可以吗?; 这道题如果用枚举法(暴力思想),在数塔层数稍大的情况下(如31),则需要列举出的路径条数将是一个非常庞大的数目(2^30= 1024^3 10^9=10亿)。; 拒绝暴力,倡导和谐~; 从顶点出发时到底向左走还是向右走应取决于是从左走能取到最大值还是从右走能取到最大值,只要左右两道路径上的最大值求出来了才能作出决策。 同样,下一层的走向又要取决于再下一层上的最大值是否已经求出才能决策。这样一层一层推下去,直到倒数第二层时就非常明了。 如数字2,只要选择它下面较大值的结点19前进就可以了。所以实际求解时,可从底层开始,层层递进,最后得到最大值。 结论:自顶向下的分析,自底向上的计算。;思考:免费馅饼 ;如何解决?;威威猫系列???事——打地鼠 ;二、经典问题:最长有序子序列;解决方案:;思考 1160 FatMouses Speed ;再思考(1087 期末考试题);解题思路?;三、经典问题:最长公共子序列;;f(i,j)= { 由于f(i,j)只和f(i-1,j-1), f(i-1,j)和f(i,j-1)有关, 而在计算f(i,j)时, 只要选择一个合适的顺序, 就可以保证这三项都已经计算出来了, 这样就可以计算出f(i,j). 这样一直推到f

文档评论(0)

1亿VIP精品文档

相关文档