DP讲座.pptVIP

  • 1
  • 0
  • 约4.77千字
  • 约 25页
  • 2018-03-26 发布于河南
  • 举报
DP讲座

简单动态规划模型 一、数塔问题(hdu2084) 有形如下图所示的数塔,从顶部出发,在每一结点可以选择向左走或是向右走,一直走到底层,要求找出一条路径,使路径上的值最大。 用暴力的方法,可以吗? 这道题如果用枚举法(暴力思想),在数塔层数稍大的情况下(如31),则需要列举出的路径条数将是一个非常庞大的数目(2^30= 1024^3 10^9=10亿)。 试想一下: 拒绝暴力,倡导和谐~ 从顶点出发时到底向左走还是向右走应取决于是从左走能取到最大值还是从右走能取到最大值,只要左右两道路径上的最大值求出来了才能作出决策。 同样,下一层的走向又要取决于再下一层上的最大值是否已经求出才能决策。这样一层一层推下去,直到倒数第二层时就非常明了。 如数字2,只要选择它下面较大值的结点19前进就可以了。所以实际求解时,可从底层开始,层层递进,最后得到最大值。 结论:自顶向下的分析,自底向上的计算。 考虑一下: 再看看动态方程: 我们设f[i][j]为走到数塔上第i行第j列节点的保存的最优(最大)路径值。 则根据以上分析: f[i][j]=max{f[i+1][j],f[i+1][j+1]}+a[i][j] 1=j=i=总层数 这样,我们就必须设计一个循环顺序使得能实现自底向上的计算 二、最长递增子序列(fjnu1700) I 0 1 2 3 4 5

文档评论(0)

1亿VIP精品文档

相关文档