随笔分类 - 笔记 / DP 及其优化
摘要:概述 线段树优化通过线段树能快速区间取值和区间修改的特性,高效实现具有连续性的 dp 转移。 所谓的连续性可以是顺推的转移目标点为连续区间,也可以是逆推的转移出发点为连续区间,这一连续不一定必须是原数组下标这一维度上的。 效果一般为将 KD1D 的 dp 的 $O(n)$ 的转移优化至 $O(\lo
阅读全文
摘要:概述 结合律优化通过将冗长的转移用结合律压缩,高效实现...取某一段的 dp 结果?也可以带修。 实现原理 首先,对应 DP 要满足结合律,即各部分转移的形式相互独立。典型的反例譬如求可行性的背包问题。 然后上线段树。视情况不同,可能是基于矩阵的 DDP 或纯粹靠复杂线段树的...线段树优化 DP?
阅读全文
摘要:概述 数位 DP 是以从数学意义上的位数出发来 DP 为特点的一类 DP。 下述特点中的一部分可能对计数类以外的不适用。 状态设计通常包含“考虑到第几位”和“是否已经比上界小”。 初始化通常为 $dp_{0,\dots}=1$ 或 $dp_{n+1,\dots}=1$,视从高位向低位或从低位向高位而
阅读全文
摘要:概述 分治优化常常在 dp 的转移有某种单向单调性时使用,通过类似整体二分的结构,确保每个决策点只在一条链上出现,从而加速转移。一般这种分治优化也有对应的二分栈形式,区别仅在于逆推和顺推。此部分在四边形不等式优化一节。 分治优化本身还是一种非常有趣的 dp 实现方式。这一部分...我还不是非常了解,
阅读全文
摘要:概述 状压 DP 是以状态含有某种意义上的状态压缩为特点的一类 DP。 所谓状态压缩,通常指的是将各个元素的状态从常规的 vector 等编码映射为一个 $id$ 即抽象的状态。 较为常见的方式是压缩为一个 $n$ 位 $k$ 进制数,其中 $n$ 为元素数,$k$ 为每个元素的状态数(中的最大值,
阅读全文
摘要:概述 自动机上 DP 是在自动机上进行的一类 dp。除此之外,我目前没能提炼出什么共性。 建自动机式问题 典型代表如 $\text{MarsOJ OI-Contest 7th T3 炉石 hearthstone}$。 特点是题目给出了...怎么说呢,题目规定了一个局面自动机,然后要求在该自动机上计数
阅读全文
摘要:概述 区间 DP 是以 dp 设计从区间出发为特点的一类 dp。 状态设计往往包含 $l,r$。 初始化通常为 $dp_{l,l}=w_l$。 转移则不一而同,看下面的详解吧。 实现倒是比较统一,比较喜欢用记搜,毕竟记搜(在不考虑进/退函数开销的情况下)比较快,而且好写。否则需要枚举 $len$。
阅读全文
摘要:概述 本文因为一些后来的修改,大概率有 typo,如果发现了请提醒我谢谢。 树形 DP 是在树上进行的一类 dp,通常有着树形的决策过程。 欧拉环游序式树形 dp,我们在概述中不讨论。 特别地,真换根 dp 的手法本质上也是欧拉环游序式...不过我们不专门谈这个,在欧拉环游序式外的地方,我们把它当做
阅读全文
摘要:概述 线性 DP 并没有明确的定义。 我个人认为,广义的线性 DP 指的是满足以下几个条件的 DP: 存在至少一维可以线性推进; 区间 DP 可以满足这个要求,只要在状态里放 $len$。在这一意义下,区间 DP 是“线性推进的一维为区间长度”的特化线性 DP。 状压 DP 显然不满足,即使状态为
阅读全文

浙公网安备 33010602011771号