dp表模型-如何写出for循环动态规划

题目很肤浅。。

但是这件事我们要做。。

那么有一种方法叫做刷表法。。

当你发现这个问题具有最优子结构,重叠子问题时

那么这是一个dp问题是使用本方法的前提

画出该dp状态所对应的矩阵

画出转移关系线。。。找出前置依赖的所有状态

如果我们能找到该表的一个遍历顺序可以使得

每次计算都依赖之前已经计算好的结果计算出来

那么我们就能正确地写出这个dp的递推写法

举个例子。。矩阵链乘法是按dp表对角线转移

而最长公共子序列就正常m*n地for转移

=============

这是解决dp问题的一个典型的dp表模型。。

但是对于背包问题等跳跃性引用表项。。我们需要小心

目前积累的dp模型太少还需要进一步去积累

合并石子与矩阵链乘法类似。。

最长公共子序列。。

==========

我们还有一个工作要做

那就是确定最先应该被确定好的依赖项的值

相当于边界值。。那么我们就要十分清楚状态的语义和数据定义

posted @ 2016-12-23 20:15  狡啮之仰  阅读(1237)  评论(0编辑  收藏  举报