-
因为网络原因,图片以及部分经典问题没有上传成功,详见PDF。
-
首先要做的是——写出状态表示和状态转移方程,有可能会引入k,即对于子问题的界定。——状态值dp[][]要和题目所求内容的要求符合!
-
子问题——很重要,把问题转化为多个阶段的子问题。
-
多阶段决策过程,每一阶段决策都是子问题——一步边长+上一个子问题结果
-
最优子结构性质:全局最优的子状态一定是子问题的最优。
-
一个反例:mod 10——不满足最优子结构性质,所以不能使用动态规划。
-
动态规划算法设计:
-
目标函数,约束条件
-
划分子问题,确定边界(k)——将问题转化为多步求解
-
优化函数值,子问题最优值——判断是否满足优化原则
-
递推方程,初值,
-
自底向上,备忘录( 表格)
-
考虑是否设立 标记函数
-
递推方程或备忘录 估计时间复杂度
-
最短路径
-
动态规划学习笔记 // /经典问题/状态表示/状态转移方程
最新推荐文章于 2024-04-20 02:26:56 发布
本文详细介绍了动态规划的基本概念,包括状态表示、状态转移方程、最优子结构性质以及动态规划的递归与迭代实现。讨论了动态规划在解决最短路径、矩阵链相乘、最长公共子序列、字符串编辑距离、最大连续子序列乘积、背包问题、硬币找零等问题中的应用。同时,给出了各种问题的状态转移方程和优化策略,帮助理解动态规划的思路和方法。
摘要由CSDN通过智能技术生成