首页 > 代码库 > 动态规划 知识汇总
动态规划 知识汇总
Dp状态设计与方程总结
不完全状态记录
<1>青蛙过河问题
<2>利用区间 dp
背包类问题
<1> 0-1 背包,经典问题
<2>无限背包,经典问题
<3>判定性背包问题
<4>带附属关系的背包问题
<5> + -1 背包问题
<6>双背包求最优值
<7>构造三角形问题
<8>带上下界限制的背包问题(012背包)
线性的动态规划问题
<1>积木游戏问题
<2>决斗(判定性问题)
<3>圆的最大多边形问题
<4>统计单词个数问题
<5>棋盘分割
<6>日程安排问题
<7>最小逼近问题(求出两数之比最接近某数/两数之和等于某数等等)
<8>方块消除游戏(某区间可以连续消去求最大效益)
<9>资源分配问题
<10>数字三角形问题
<11>漂亮的打印
<12>邮局问题与构造答案
<13>最高积木问题
<14>两段连续和最大
<15>2 次幂和问题
<16>N 个数的最大 M段子段和
<17>交叉最大数问题
判定性问题的 dp(如判定整除、判定可达性等)
<1>模 K问题的 dp
<2>特殊的模 K问题,求最大(最小)模 K的数
<3>变换数问题
单调性优化的动态规划
<1>1-SUM 问题
<2>2-SUM 问题
<3>序列划分问题(单调队列优化)
剖分问题(多边形剖分/石子合并/圆的剖分/乘积最大)
<1>凸多边形的三角剖分问题
<2>乘积最大问题
<3>多边形游戏(多边形边上是操作符,顶点有权值)
<4>石子合并(N^3/N^2/NLogN各种优化)
贪心的动态规划
<1>最优装载问题
<2>部分背包问题
<3>乘船问题
<4>贪心策略
<5>双机调度问题 Johnson算法
状态 dp
<1>牛仔射击问题(博弈类)
<2>哈密顿路径的状态 dp
<3>两支点天平平衡问题
<4>一个有向图的最接近二部图
树型 dp
<1>完美服务器问题(每个节点有 3种状态)
<2>小胖守皇宫问题
<3>网络收费问题
<4>树中漫游问题
<5>树上的博弈
<6>树的最大独立集问题
<7>树的最大平衡值问题
<8>构造树的最小环
先掌握搜索,动态规划,贪心这些思想方法 然后学习各种技巧