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

本文介绍了动态规划的基础概念及实现方法,通过具体实例如矩阵链乘法和最长公共子序列问题来解析如何寻找最优子结构、重叠子问题,并讨论了不同问题的转移方式。文章还强调了理解状态语义的重要性。

题目很肤浅。。

但是这件事我们要做。。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最长公共子序列。。

==========

我们还有一个工作要做

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

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

转载于:https://www.cnblogs.com/linkzijun/p/6216036.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值