首页 > 代码库 > 动态规划 知识汇总

动态规划 知识汇总



Dp状态设计与方程总结   

  1. 不完全状态记录 

    <1>青蛙过河问题 

    <2>利用区间 dp 

  2. 背包类问题 

    <1> 0-1 背包,经典问题 

    <2>无限背包,经典问题 

    <3>判定性背包问题 

    <4>带附属关系的背包问题 

    <5> + -1 背包问题 

    <6>双背包求最优值 

    <7>构造三角形问题 

    <8>带上下界限制的背包问题(012背包) 

  3. 线性的动态规划问题 

    <1>积木游戏问题 

    <2>决斗(判定性问题) 

    <3>圆的最大多边形问题 

    <4>统计单词个数问题 

    <5>棋盘分割 

    <6>日程安排问题 

    <7>最小逼近问题(求出两数之比最接近某数/两数之和等于某数等等) 

    <8>方块消除游戏(某区间可以连续消去求最大效益) 

    <9>资源分配问题 

    <10>数字三角形问题 

    <11>漂亮的打印 

    <12>邮局问题与构造答案 

    <13>最高积木问题 

    <14>两段连续和最大 

    <15>2 次幂和问题 

    <16>N 个数的最大 M段子段和 

    <17>交叉最大数问题 

  4. 判定性问题的 dp(如判定整除、判定可达性等) 

    <1> K问题的 dp 

    <2>特殊的模 K问题,求最大(最小) K的数 

    <3>变换数问题 

  5. 单调性优化的动态规划 

    <1>1-SUM 问题 

    <2>2-SUM 问题 

    <3>序列划分问题(单调队列优化) 

  6. 剖分问题(多边形剖分/石子合并/圆的剖分/乘积最大) 

    <1>凸多边形的三角剖分问题 

    <2>乘积最大问题 

    <3>多边形游戏(多边形边上是操作符,顶点有权值) 

    <4>石子合并(N^3/N^2/NLogN各种优化) 

  7. 贪心的动态规划 

    <1>最优装载问题 

    <2>部分背包问题 

    <3>乘船问题 

    <4>贪心策略 

    <5>双机调度问题 Johnson算法 

  8. 状态 dp 

    <1>牛仔射击问题(博弈类) 

    <2>哈密顿路径的状态 dp 

    <3>两支点天平平衡问题 

    <4>一个有向图的最接近二部图 

  9. 树型 dp 

    <1>完美服务器问题(每个节点有 3种状态) 

    <2>小胖守皇宫问题 

    <3>网络收费问题 

    <4>树中漫游问题 

    <5>树上的博弈 

    <6>树的最大独立集问题 

    <7>树的最大平衡值问题 

    <8>构造树的最小环      

 

先掌握搜索,动态规划,贪心这些思想方法 然后学习各种技巧