• 有关Rujia Liu 动态规划的·一些总结


    1.动态规划是什么?

    就是很高级的大暴力啊!,打暴力的时候把值存起来避免重复计算,用来求组合优化问题的

    一个玄学东西;

    2.如何确定状态及转移方程?

    一般思路先把暴力打出来吧,,说不定打打暴力(就像第一次做数字三角,,,暴力出dp)就把状态和转移方程找到了(鄙人觉得做动规前

    先打暴力,一是避免翻车,二也能梳理思路以便找dp状态及方程)。但这是对于一些比较普通的dp,

    遇到难的怎么办?    ,,,,看命吧,但时刻记住状态决定了方程,也决定了程序实现的复杂程度,觉得不太能实现程序时就该换

    换思路,改个状态想一哈了。

    3.蒟蒻的我觉得设计状态可以有如下思路

    1)可以先写递归暴力,在其中寻找需要用以保存以减少复杂度的值

    2)寻找最优子结构,一道题目能用dp一定具有最优子结构,要保证找出的方程一定每部能求出当前最优(仿佛有些像贪心,其实我觉的

    两种方法有互通的地方)

    3)拿到一道dp题可以花个几分钟想想能不能放在DAG上做,能的话,往往朝这个方向去想就能得出方程啦!(其实01背包放在DAG上也可以

    想得通)

    4)状态可以朝这几个方面去想:距离答案还有多远,如uva116,这样即可从答案往前推,以答案为边界条件

    当前已取得最优值,如uva11584,状态设计为dp[i]为0~i已取得的最小回文字串数目,即可的dp[i]=min{dp[j]+1| j+1...i为回文串}

    如若发现当前状态无法用未更新值求得最优,如uva11400,可以用面的值来求取更新前面的最优值

    这是蒟蒻的我关于dp方法的总结,(写怎么样无所谓了,反正自己看。。。)

    此博文全得益于我亲爱的姐姐(要不是昨天晚上她和我打了一晚游戏,,今天也不会没头脑写题,来写博客。。。)

  • 相关阅读:
    uniapp项目笔记
    JS的基本数据类型symbol
    javascript中的offsetWidth、clientWidth、innerWidth及相关属性方法
    const, let, var的区别
    vue中的computed属性
    微星主板多个硬盘启动顺序
    vue中子父组件传值问题
    Vue 中 ref 的使用
    码云ssh免密码登录
    当在iOS下获取scrollTop时可以获取到,在Android下获取scrollTop一直为0的问题
  • 原文地址:https://www.cnblogs.com/lmjer/p/8426088.html
Copyright © 2020-2023  润新知