zoukankan      html  css  js  c++  java
  • 【笔记】动态规划基础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(最长上升子序列)()[]

  • 相关阅读:
    P1032 字串变换
    P3203 [HNOI2010]弹飞绵羊
    P3690 【模板】Link Cut Tree (动态树)
    P2147 [SDOI2008]洞穴勘测
    P3950 部落冲突
    Codeforces Round #469 Div. 2题解
    线段树
    SDOI2018退役记
    4.1模拟题
    无旋Treap
  • 原文地址:https://www.cnblogs.com/ZhengkunJia/p/12589015.html
Copyright © 2011-2022 走看看