zoukankan      html  css  js  c++  java
  • 有关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方法的总结,(写怎么样无所谓了,反正自己看。。。)

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

  • 相关阅读:
    spring boot 中统一异常处理
    An Errors/BindingResult argument is expected to be declared immediately after the model attribute, the @RequestBody or the @RequestPart arguments to which they apply: public com.rongrong.springboot.de
    SPI(Service Provider Interface)机制
    局域网的路由器&网卡
    Kafka
    限流算法
    生成对抗网络(GAN)
    神经网络
    AR介绍
    NIO的Buffer&Channel&Selector
  • 原文地址:https://www.cnblogs.com/lmjer/p/8426088.html
Copyright © 2011-2022 走看看