zoukankan      html  css  js  c++  java
  • 动态规划分类(完整版)

    动态规划(dynamic programming)是运筹学的一个分支,是求解决策过程(decision process)最优化的数学方法。

    也是ACM比赛中用得最多的算法之一,深入学习动态规划很重要,下面是动态规划的完整分类:

    1、背包模型 
          包括0-1背包、无限背包、有限背包、有价值背包、小数背包(贪心即可)等,是极为经典的模型,其转化与优化也是很重要的。
    2、最长非降子序列模型
          改版:渡河问题、合唱队型等 
    3、最大子段和模型 
         改版:K大子段和、最佳游览,最大子矩阵和等。 
    4、LCS模型
        改版:回文字串、多串的LCS等 
    5、括号序列模型
        改版:关灯问题(TSOJ)、charexp(TSOJ)、最大算式等,核心思想在于以串的长度为阶段。 
    6、递推模型
        这类题是属于徘徊在DP与递归之间得一类题,本质是类似于记忆化搜索的一种填表,有很强的数学味。
    7、线段覆盖问题 
        改版:Tom的烦恼(TOJ)等。经常利用到离散化等技巧辅助。
    8、单词划分模型 
        和LCS基本上构成了字符串DP的主要类型。改版:奇怪的门(TOJ)等。 
    9、股票模型
         这是DP优化的经典模型。改版有换外汇等。
    10、连续段划分模型 
       即要求把数列划分成k个连续段,使每段和的最大值最小。改版有任务调度等。
    11、游戏模型 
        这类题的阶段(一般是时间)和决策(一般就是游戏目标)很清楚,因此比较容易想到。改版:免费馅饼(NOI98)、Help Jimmy(CEOI2000)、瑰丽华尔兹(NOI2005,优化需要多费功夫).

    ---------------------------------------------------------------------------------------

    微信公众号:怪木卡卡

    关注互联网,改变生活。

  • 相关阅读:
    程序员开发过程常见问题的解决方法(持续更新中....)
    android 单元测试
    浅谈android binder机制
    Android 写模块化代码注意事项
    Android View 简析
    PackageManager源码分析
    Android N做了啥
    JAVA HTTP POST参数为一个对象或数组
    Spring+Jetty+Jersey+Mybatis整合教程 无web.xml 、webapp版
    IKAnalyzer 添加扩展词库和自定义词
  • 原文地址:https://www.cnblogs.com/crazyacking/p/3581170.html
Copyright © 2011-2022 走看看