随笔分类 - 笔记 / DP 及其优化 / DP
摘要:概述 数位 DP 是以从数学意义上的位数出发来 DP 为特点的一类 DP。 下述特点中的一部分可能对计数类以外的不适用。 状态设计通常包含“考虑到第几位”和“是否已经比上界小”。 初始化通常为 $dp_{0,\dots}=1$ 或 $dp_{n+1,\dots}=1$,视从高位向低位或从低位向高位而
阅读全文
摘要:概述 状压 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 显然不满足,即使状态为
阅读全文