随笔分类 - 动态规划
各种DP
摘要:这个倍增优化 DP 其实是类似于一个矩阵乘法加速递推的形式 因而其普遍取时间复杂度 \(O(n^3\log P)\) 因此有一个特征就是前面 \(n\) 很小但是 \(P\) 很大的话一般就会这样 单次的转移方程非常好写类似于 Floyd 的变体,即 \[f_{i,j}=f_{i,k}\circ f
阅读全文
摘要:昨天\(T2\)想到正解是预设\(DP\) 但是还是对预设型\(DP\)理解不深, 所以没推出转移方程 什么是预设型DP? 和唯一元素位置相关的\(DP\) 一般是问一类合法的方案数 这类\(DP\)在顺序转移的时候 没有附加维度就是有后效性的,这是正确性有问题的 考虑解决这一方式的手段是枚举有没有
阅读全文
摘要:我也不知道我为啥整这玩意 以下内容来自pl_er的讲课: 决策单调性优化 \(dp\) 对于转移 \[dp_j=\min_{i<j}(f_i+w(i,j)) \]令 \(t(i,j)\) 表示从 \(i\) 转移到 \(j\) 后 \(j\) 的 \(dp\) 值 若有对于任意 \(i<j\),存在
阅读全文
摘要:一般这个东西有如下若干种思考思路 1.直接对概率/期望考虑 DP 设好阶段状态决策和状态转移方程即可 2.如果分母是比较好算的,可以考虑对分子进行计数 3.如果都比较好算,那么可以直接列式子算,也就是一个推式子的题目 概率 一般考虑 “在条件 B 的前提下发生事件 A” 的概率为 \(P(A|B)\
阅读全文
摘要:有些时候状态转移的时候一堆候选决策不知道怎么办? 使用循环?会T飞的! 维护决策单调性?会出错的! 倍增/状压?离正解远了! 剩下的只有这一个优化方式了: 数据结构优化DP 有些决策暴力查询复杂度很炸,不过放到数据结构题就是板子 这个时候,我们就可以写一个数据结构,查询决策就相当于查询 这样的话查询
阅读全文
摘要:状压 状态压缩,就是用一个整数代替DP中某种一般情况下需要以集合充当状态的状态 因为要枚举集合,所以时间复杂度就是指数级 状压意义下的状态表示就是在\(P\)进制下将第\(i\)个元素的某种状态用整数第\(i\)位的\(j∈[0,P-1]\)表示出来 一般而言,状态压缩顾名思义压缩的是一整个集合表示
阅读全文
摘要:简介 线性DP中有两类DP状态转移方程式: 1.状态转移中每一项中仅含阶段变量i或状态变量j(1D/1D) 2.状态转移中每一项中同时含阶段变量i与状态变量j 如果使用暴力DP的话毫无疑问两种都是O(n^2),此时面对n=1e5无能为力 但是,回归循环代码,我们会发现有些转移是没有必要的 砍掉这些没
阅读全文
摘要:模拟赛里树形DP吃大亏,开贴重学 树形DP:树上与图上的DP 特征:给定一棵N节点的树作为问题(有根无根均可,但通常无根) 解法: 1.阶段: 一般以节点由深到浅,子树从小到大的顺序作为DP的阶段 即状态表示中,第一维通常是节点的编号(代表以该节点为根的子树) 2.状态: 依题而定 3.决策: 同理
阅读全文
摘要:1.矩阵取数: 帅帅经常跟同学玩一个矩阵取数游戏:对于一个给定的nxm的矩阵,矩阵中的每个元素aij,均为非负整数。游戏规则如下: 1.每次取数时须从每行各取走一个元素,共n个。m次后取完矩阵所有元素; 2.每次取走的各个元素只能是该元素所在行的行首或行尾; 3.每次取数都有一个得分值,为每行取数的
阅读全文
摘要:1.状态压缩: DP算法中,状态是一个比较重要的量 然而有些DP算法状态多而且杂,那么,对于这样的DP,我们能不能稍做优化? 在背包问题时,我们知道,有些状态是可以被压掉的,那么,换到别的DP中,我们有没有办法压掉一些状态? 有:用二进制数来保存状态,即这里指的状态压缩 要和二进制数打交道,必然少不
阅读全文
摘要:整理区间DP例题以及对区间DP理解 区间DP,即合并类动态规划,往往以区间为阶段进行划分 注:有的决策是左右端点向左向右扩展$1$,这个时候只用枚举状态即可 在解决区间合并问题时: 1.以区间长度为阶段 2.以左右端点为状态 3.以区间划分为决策 另一种写法以左端点为阶段,右端点为状态直接枚举决策
阅读全文
摘要:具有线性规划特点的DP类型称为线性DP 这类DP一般是较为基础的~~蒟蒻不提简单二字~~ DP: 状态表示应满足三个特点: 1.最优化:满足最优子结构性质 (略微不同于贪心的“滚雪球”,DP算法不一定满足局部最优导致全局最优,但DP算法可以通过更新最优解实现全局最优) 2.无后效性:即当前问题的决策
阅读全文

浙公网安备 33010602011771号