dp 好题

题单介绍

一些我做过的的 dp 好题。 按时间顺序加入,题单内题目顺序与难度/内容无关。 打 * 的表示我非常推荐一做的题。 题单 $1$:<https://www.luogu.com.cn/training/424182>。 题单 $2$:<https://www.luogu.com.cn/training/471061>。 ### 状压 dp *P2566:很巧妙的状压 dp,运用到了射线法这一 trick。 *CF53E:状压 dp & 计数 dp,难点在于如何去掉重复状态。 P5369:观察性质,巧妙设计状态 & 转移。 P3959:考虑你需要什么信息,合理设计 dp 状态;观察到一些不合法的情况必然不优。 *ARC106E:由 Hall 定理来考虑 dp。 *CF1773G:很牛的状压 dp;观察性质,发现有一些东西根本没有必要状压。 CF1730F:不是很难的状压 dp;考虑你需要什么,考虑什么状态是无用的。 *CF21D:欧拉回路状压 dp。 P10813:转换成 $01$ 序列上的问题,进行 dp。 *ABC216Ex:经典题,LGV 引理+行列式计算拆贡献。 ### 计数 dp *CF53E:状压 dp & 计数 dp,难点在于如何去掉重复状态。 P3643:一般的计数 dp;三倍经验(不完全一样):ARC104E & CF1295F。 ARC108D:分类讨论,你会惊讶的发现 dp 形式非常简单。 CF1485F:数据范围非常大,但是观察 dp 转移非常有规律。 ABC134F:将问题转换成一个便于转移的模型。 *CF1781F:括号题,考虑括号序列的性质。 CF1542E2:推出一个 dp 形式然后不断优化。 *AGC013E:考虑其组合意义,推出线性的 dp 方程,然后矩乘优化。 CF1327F:按位考虑;想一想自己需要什么,再设计状态 & 转移。 CF1580B:最值问题,考虑笛卡尔树。 CF1559E:容斥,比较综合的题。 *CF1174E:观察性质,然后就做完了。 *CF1765C:很厉害的计数 dp,非常考察选手的 dp 水平。 CF1574F:丢到图论上去考虑;发现有些转移是类似的,考虑怎么加速。 *CF1726E:有关于排列的问题,套路地考虑置换环。 *CF1842G:非常有趣的数数题,考虑组合意义。 *CF1750F:WC2024 上课的题目;正难则反,观察性质。 *ABC262Ex:变换约束条件,ds 优化计数 dp。 *AGC030F:转换模型。 *AGC060C:APIO2024 上课的题,考虑怎么定义状态。 CF1799G:容斥 + dp,比较套路,但也值得一做。 *CF1909F2:考虑几何意义。 CF913F:很综合的 dp 题,有一定难度。 *CF1988F:比较典的 trick,再观察性质。 *P4827:运用多种组合恒等式优化 dp。 *P4709:出公开赛的时候想到的题,完了查重的时候发现了这个题/xk,还算是挺不错的题。 *ARC101E:容斥 + dp。 *P4707:经典题:min-max 容斥 + dp。 *P6596:很厉害的题。 *ABC216Ex:经典题,LGV 引理+行列式计算拆贡献。 *P10013:树形 dp + 树上拓扑序计数。 *P10008:构造双射+dp+拉插。 *P8340:比较优雅的题。 *P10592:观察性质,去掉重复状态。 *P10595:神题。 P5643:trick 大乱炖:树上高消 + min-max 容斥 + FWT。 *AGC038E:min-max 容斥 + dp。 *P8329:容斥 + 连通块 dp。 ### 数位 dp P2481:挺经典 & 巧妙的 trick:拆前/后缀。 *P9129:相当于是在数位上做区间 dp,状态设计 & 转移较为复杂,考察对于 dp 的综合运用。 *P6669:通过 Lucas 定理来划分数位。 ### 树形 dp *P3647:很综合的树形 dp。 *CF1016F:将一棵树看成一条链上挂了好几棵子树,然后做线性 dp;类似 trick 的一个题是 P4151。 CF1485E:先考虑暴力,然后不断减小 dp 状态规模,再是经典的拆绝对值。 CF1626E:先考虑什么情况下能到,然后发现是一个换根 dp 的形式。 *P4383:先考虑去掉 $k$ 的限制怎么做,然后我猜他是凸的。 CF1179D:树上斜率优化 dp。 *CF1830D:观察性质,构造一个相对较优的答案,减少状态数。 *P6326:树上依赖性背包问题。 CF1394D:观察性质,转换答案表达方式,然后进行 dp。 ### 经典的 dp 优化 P6190:普通矩阵快速幂优化 dp 的一个变式,考察对于矩阵快速幂优化 dp 的理解。 *CF809D:平衡树优化 dp。 P6773:线段树合并/dsu on tree 优化 dp。 *AGC13E:考虑其组合意义,推出线性的 dp 方程,然后矩乘优化。 ARC108E:树状数组优化 dp。 *CF1662C:矩阵套矩阵,矩阵快速幂优化 dp 好题,P2151 的严格加强版。 P4569:经典的先建 AC 自动机,加字符看成再图上游走,然后就是简单的矩乘优化。 *P4383:先考虑去掉 $k$ 的限制怎么做,然后我猜他是凸的。 CF553E:分治 FFT 加速 dp 转移。 P9871:线段树优化 dp 典题。 CF1179D:树上斜率优化 dp。 *ABC262Ex:变换约束条件,ds 优化计数 dp。 *CF573D:猜测结论,列出 dp 方程,上 ddp。 *ABC240Ex:观察性质,树状数组优化 dp。 *P10145:转换模型,线段树合并优化 dp。 *CF1792F2:观察性质,推出 dp 方程,分治 fft 优化。 *CF2004G:列出转移方程,进行转换,进一步发现可以使用矩乘优化。 *P10013:树形 dp + 树上拓扑序计数。 *ABC305Ex:观察性质 + dp + wqs。 ### 其他类型的 dp P3188:按位考虑,逐个释放空间,观察性质。 P3485:观察到字符集很小,转移时可以做一个“缓存”来优化复杂度。 CF1292C:考虑 mex 的性质,然后在考虑贡献;虽然是树上问题,但感觉不算是树形 dp。 ARC107D:和 P2481 类似。 *CF1765F:很厉害的题,考虑其几何意义,然后是经典 trick:不合法的转移必然不优。 *P9676:观察性质,去掉必然不优的状态。 CF1453F:比较有趣的题,类似于差分的懒标记转移。 *CF1801F:非常好的 dp!整除分块设计状态 & 转移。 *P7606:通过随机化的期望答案来缩小需要枚举信息的范围。 *CF1789F:算得上半个状压 dp,但主要有趣之处在于值域分治。 *ABC211G:变换坐标系;对于后半部分,$\mathcal{O}(nV)$ 做法是很深刻的,或者也可以用 P7606 的 trick。 *CF1768F:观察性质,根号分治。

题目列表

  • [SCOI2009] 围豆豆
  • Dead Ends
  • [PKUSC2018] 最大前缀和
  • [SDOI2010] 代码拍卖会
  • [NOIP 2017 提高组] 宝藏
  • [NOI Online #1 入门组] 魔法
  • [APIO2014] 连珠线
  • Road Projects
  • [HNOI2007] 梦幻岛宝珠
  • [USACO23FEB] Piling Papers G
  • [POI 2009] BAJ-The Walk of Bytie-boy
  • Xenon's Attack on the Gangs
  • [清华集训 2016] 组合数问题
  • [APIO2016] 划艇
  • [ARC106E] Medals
  • [ARC107D] Number of Multisets
  • Copy or Prefix Sum
  • Move and Swap
  • Hitchhiking in the Baltic States
  • Game of Questions
  • Chemistry Lab
  • [ABC134F] Permutation Oddness
  • Bracket Insertion
  • Abnormal Permutation Pairs (hard version)
  • [NOI2020] 命运
  • [AGC013E] Placing Squares
  • [ARC108E] Random IS
  • European Trip
  • AND Segments
  • [八省联考 2018] 林克卡特树
  • Kyoya and Train
  • [ICPC 2022 Jinan R] Skills
  • Mathematics Curriculum
  • Mocha and Stars
  • Ehab and the Expected GCD Problem
  • Card Guessing
  • Even Harder
  • Occurrences
  • Black and White Tree
  • Almost Perfect
  • Another n-dimensional chocolate bar
  • Almost Sorted
  • Fedor Runs for President
  • Tenzing and Random Operations
  • Mex Tree
  • Majority
  • [ABC262Ex] Max Limited Sequence