【笔记】动态规划基础2

基础知识

动态规划实质

动态规划是图论的子问题

图论中
	点-状态    边-转移
	最优值-最短路
	方案数-路径统计

动态规划的概念

题-场景(有好多种场景)
动态规划三要素:
	状态-用来表示在哪一种场景,是描述场景的变量的集合
	转移方程-状态之间的关系
	初始化

动态规划的三种写法

用别人的状态转移到我
贡献我的状态转移给别人
    记忆化搜索
(会存在某些题只能用一种方法)

分析斐波那切数列的记忆化搜索的复杂度

搜索求f[n]时,函数返回值只有1和0
	f[n]=0+0+0+…+1+1+1+…
复杂度即为O(f[n])约等于O(2^n)

技巧

  1. 状态设计
    a) 一个变量,一个维度
    i. 例:取余数字三角形

  2. 求方案数时,开一个和原来一样的数组专门存方案

  3. 改变顺序
    a) 滑雪
    i. 不再简单地上下左右转移,而是按照海拔排序之后单调转移
    b) DAG
    i. (所有的我们能遇上的DP都是DAG)

  4. 消除冗余
    乌龟棋()[]

斐波那切数列()[]

LIS(最长上升子序列)()[]

原文地址:https://www.cnblogs.com/ZhengkunJia/p/12589015.html