持续更新!!

DP的难点主要分为两类,一类以状态设计为难点,一类以转移的优化为难点。

DP的类型

序列DP

【例题】BZOJ2298 problem a

数位DP

常用来统计或者查找一个区间满足条件的数,然后按数位顺序DO,一般需要仔细分情况讨论,常见处理如把区间拆为\([1,l),[1,r]\),记忆化,预处理等。
【例题】BZOJ3131 淘金


概率DP

概率DP是对一类求时间概率或者期望概率DP的总称。
对于求概率问题,有时利用补集转化,有时将其转化为计数问题。求期望大多利用期望的线性性来解决问题。还有一些较难的题目会用到贝叶斯公式。
【例题】BZOJ4008 亚瑟王
【例题】codeforces 113D

\(P(x,y)=P(y|x)P(x)\neq P(y)(x)\)

\(P(y|x)P(x)=P(x|y)P(y)\)

移项得出贝叶斯公式——

\[P(y|x)=\frac{P(x|y)P(y)}{P(x)}\]


树形DP

【例题】BZOJ3611 大工程
【例题】BZOJ2734

树的直径

树的重心

树上最大权独立集

树形依赖背包

在dfs序上DP

虚树

在原树上只保留需要的点和他们的LCA的树称为虚树。


状压DP

基于状态压缩的 DP 是由于状态用单个简单的变量直接存储存在空 间的浪费, 而采用压缩的状态的动态规划, 例如: • 插头 DP: 维护当前已决策和未决策的一条 Z 字形的轮廓线的插 头状态, 用括号序列配对插头, 每次只需分情况讨论即可, 但是这 类 DP 的显著特点就是情况繁多, 使用时须细心

【例题】BZOJ3836 tourism
【例题】BZOJ2734 集合选数


DP套DP

某些DP问题的子问题不能简单地解决,而必须用另一个DP解决的问题。
即:外面的DP的状态是存的里面的DP各个状态的值,利用里层的状态来判断外层的DP是否合法,类似的问题有LCS为定值的序列的方案数等等。
【例题】BZOJ 3864


DP的优化

形式优化

【例题】BZOJ2436 嘉年华

决策单调性

【例题】诗人小G
什么是决策单调性(大家可以百度:浅析1D1D动态规划的优化)

如果导函数递增、求最大值(柠檬),或者导函数递减、求最小值,要用单调栈。

如果导函数递增、求最小值(本题),或者导函数递减、求最大值(Lightning Conductor),要用单调队列。

常见的决策单调性优化有四边形不等式优化,以及一些1D/1D动态规划的优化。

更多总结,题目联系,启发思想,参见flash_hu的博文——DP优化总结

四边形不等式优化:

以下内容摘抄自这里这里

对于如下的状态转移方程(max与min等价)
\[m(i,j)=min\{m(i,k-1),m(k,j)+w(i,j)\}(i\le k\le j)\]

区间包含的单调性

如果对于\(i\le i'\le j\le j'\),有\(w(i',j)\le w(i,j')\)

四边形不等式

如果对于\(i\le i'\le j\le j'\),有\(w(i,j)+w(i',j')\le w(i',j)+w(i,j')\),我们称函数w满足四边形不等式。

定理一

如果上述的w函数同时满足区间单调性和四边形不等式,那么函数m也满足四边形不等式性质。

定理二

设\(s(i,j)\)表示\(m(i,j)\)取得最优值时对应的下标(即\(i\le k\le j\)时,k处的w值最大,则\(s(i,j)=k\))。那么假如\(m(i,j)\)满足四边形不等式,那么\(s(i,j)\)单调,即\(s(i,j)\le s(i,j+1)\le s(i+1,j+1)\)

具体如何优化呢?我们原来在计算\(f[i][j]\)的时候,枚举的k值范围是\([i,j)\),所以单次转移的复杂度是\(O(n)\),现在,我们既然知道了\(p[i][j-1]\le p[i][j]\le p[i+1][j]\),我们只需要把k的枚举范围改成\(p[i][j-1]\)至\(p[i+1][j]\)就好了!总体复杂度就变成了O(n^2)了!注意这里是闭区间,即p[i][j-1]和\(p[i+1][j]\)都能取到。下面给出简单证明。

对于固定的区间长度len,有

\(f[i][i+len]\)的决策范围为\(p[i][i+len-1]\)至\(p[i+1][i+len]\)

\(f[i+1][i+len+1]\)的决策范围为\(p[i+1][i+len]\)至\(p[i+2][i+len+1]\)

\(f[i+2][i+len+2]\)的决策范围为\(p[i+2][i+len+1]\)至\(p[i+3][i+len+2]\)

斜率优化

凸单调性


容斥

栋栋的容斥总结

【例题】ZJOI2016 小星星

部分分+正解解题报告以及相似类型题目:参见shadowice1984

技巧们

1、凑系数【例题】BZOJ4671 异或图
2、平方处理【例题】BZOJ1566 管道取珠
3、反射法

OI动态规划&&优化 简单学习笔记的更多相关文章

  1. OI数据结构&&分治 简单学习笔记

    持续更新!!! [例题]简单题(K-D tree) 题目链接 线段树 [例题](环上最大连续和) 给定一个长度为n的环形序列A,其中A1与A_n是相临的,现在有q次修改操作,每次操作会更改其中一个数, ...

  2. OI树上问题 简单学习笔记

    判断链 每个点的度数不超过2 判断树 n个点,n-1条边 每两个点之间的路径唯一 多叉树转换成二叉树 第一个孩子作为左孩子,第一个孩子的兄弟作为它的右孩子. 树的重心 树上一点,满足删除该点时,树内剩 ...

  3. OI数学 简单学习笔记

    基本上只是整理了一下框架,具体的学习给出了个人认为比较好的博客的链接. PART1 数论部分 最大公约数 对于正整数x,y,最大的能同时整除它们的数称为最大公约数 常用的:\(lcm(x,y)=xy\ ...

  4. PJ可能会用到的动态规划选讲-学习笔记

    PJ可能会用到的动态规划选讲-学习笔记 by Pleiades_Antares 难度和速度全部都是按照普及组来定的咯 数位状压啥就先不讲了 这里主要提到的都是比较简单的DP 一道思维数学巧题(补昨天) ...

  5. Log4j简单学习笔记

    log4j结构图: 结构图展现出了log4j的主结构.logger:表示记录器,即数据来源:appender:输出源,即输出方式(如:控制台.文件...)layout:输出布局 Logger机滤器:常 ...

  6. Linux——帮助命令简单学习笔记

    Linux帮助命令简单学习笔记: 一: 命令名称:man 命令英文原意:manual 命令所在路径:/usr/bin/man 执行权限:所有用户 语法:man [命令或配置文件] 功能描述:获得帮助信 ...

  7. 斜率优化DP学习笔记

    先摆上学习的文章: orzzz:斜率优化dp学习 Accept:斜率优化DP 感谢dalao们的讲解,还是十分清晰的 斜率优化$DP$的本质是,通过转移的一些性质,避免枚举地得到最优转移 经典题:HD ...

  8. <<C++标准程序库>>中的STL简单学习笔记

    0. 内容为个人学习笔记, 仅供参考, 如有错漏, 欢迎指正! 1. STL中的所有组件都是由模板构成的, 所以其元素可以是任意型别的. 组件有: - 容器: 管理某类对象的集合. 不同的容器有各自的 ...

  9. OI图论 简单学习笔记

    网络流另开了一个专题,所以在这里就不详细叙述了. 图 一般表示为\(G=(V,E)\),V表示点集,E表示边集 定义图G为简单图,当且仅当图G没有重边和自环. 对于图G=(V,E)和图G2=(V2,E ...

随机推荐

  1. .NET Utils 辅助类

    using System;using System.Diagnostics;using System.IO;using System.Reflection;using System.Runtime.I ...

  2. swagger ui js 错误:Failed to execute 'serializeToString' on 'XMLSerializer': parameter 1 is not of type 'Node'.

    经过排查,引发此错误的原因是,表中有一个字段名称为“NodeName”,应该是在前台xml解析时引发冲突所致.我的解决办法是: 修改列名,修改映射. 如下: [Column("NodeNam ...

  3. git(常用命令)思维导图...

    Git 是一个很强大的分布式版本控制系统.它不但适用于管理大型开源软件的源代码,管理私人的文档和源代码也有很多优势. 来自文章:http://www.cnblogs.com/1-2-3/archive ...

  4. webstorm 2017 激活破解

    2017-06-15更新 之前都是使用2017.2.27的方法,版本是2017.1.1,还没提示过期,但是根据评论说这个链接已经失效了,评论也给出了个新地址:http://idea.iteblog.c ...

  5. 并发编程(五)LockSupport

    并发编程(五)LockSupport LockSupport 提供 park() 和 unpark() 方法实现阻塞线程和解除线程阻塞,实现的阻塞和解除阻塞是基于"许可(permit)&qu ...

  6. 24. Indoor Air pollution 室内空气污染

    . Indoor Air pollution 室内空气污染 ① Priscilla Ouchida's "energy-efficient"house turned out to ...

  7. js限制上传文件的类型和大小

    var maxsize = 6*1024*1024;//6M var errMsg = "上传的附件文件不能超过6M!!!"; var tipMsg = "您的浏览器暂不 ...

  8. PAT甲 1006. Sign In and Sign Out (25) 2016-09-09 22:55 43人阅读 评论(0) 收藏

    1006. Sign In and Sign Out (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue ...

  9. hdu2844

    题目 这道题,刚开始题没读懂,就是这句话:,A1,A2,A3...An and C1,C2,C3...Cn corresponding to the number of Tony's coins of ...

  10. 洛谷P3567[POI2014]KUR-Couriers(主席树+二分)

    题意:给一个数列,每次询问一个区间内有没有一个数出现次数超过一半 题解: 最近比赛太多,都没时间切水题了,刚好日推了道主席树裸题,就写了一下 然后 WA80 WA80 WA0 WA90 WA80 ?? ...