板刷 DP

板刷 DP

前言

由于自己 DP 太菜了,因此打算板刷一波(?

不知道能坚持多久,尽量搞下去吧。

存几个题单(不分先后):

20220618

CF66E Petya and Post

环形 DP。

从顺逆时针分别考虑,假设 \({dp}_i\) 表示从 \(i\) 出发整个过程中油量最小值,预处理出一个值然后递推即可。

递推式为 \({dp}_i={dp}_{i+1}+a_i-b_i\),另一方向同理,复杂度 \(\mathcal O(n)\)

P3914 染色计数

树形 DP。

容易得到一个 \(\mathcal O(n^3)\) 做法(\(n,m\) 同阶),即设 \({dp}_{i,j}\) 表示考虑 \(i\) 子树内,\(i\) 号点颜色为 \(j\) 的方案数,然后暴力枚举所有儿子颜色,根据乘法原理进行转移。

\({sum}_i=\sum\limits_{j=1}^m{dp}_{i,j}\),就可以省下暴力枚举儿子颜色部分的复杂度,降为 \(\mathcal O(n^2)\)\(n,m\) 同阶)。

AT4537 Independent Set

树形 DP。

\({dp}_{i,0/1}\) 表示考虑 \(i\) 子树内,\(i\) 号点是白色还是黑色的方案数,根据乘法原理进行转移,复杂度 \(\mathcal O(n)\)

CF455A Boredom

线性 DP。

\({dp}_i\) 表示在 \(1\sim i\) 选择若干个数的最大价值,则 \({dp}_i=\max\{{dp}_{i-1},{dp}_{i-2}+i\cdot {cnt}_i\}\),其中 \({cnt}_i\)\(i\) 的出现次数,复杂度 \(\mathcal O(n)\)\(n,w\) 同阶)。

20220621

先记在这里,有时间补一下。

https://hydro.ac/d/bzoj/p/1688https://www.luogu.com.cn/problem/P2135 & https://www.luogu.com.cn/problem/UVA10559 的双倍经验。

20220702

CF1689C Infected Tree

树形 DP。

\({sz}_u\) 表示 \(u\) 子树大小,\({dp}_u\) 表示 \(u\) 子树内当 \(u\) 感染时的答案为多少,转移时分类讨论:

  • \(u\) 是叶子,\({dp}_u=0\)
  • \(u\) 有一个儿子 \(v\)\({dp}_u={sz}_v-1\)
  • \(u\) 有两个儿子 \(v,w\)\({dp}_u=\max\{{sz}_v-1+{dp}_w,{sz}_w-1+{dp}_v\}\)

第一次 dfs 处理 \(sz\) 和儿子,第二次 dfs 进行 DP 即可,复杂度 \(\mathcal O(n)\)

P2150 [NOI2015] 寿司晚宴

神仙状压 DP+根号分治+容斥,当然我觉得神仙大概是因为我太菜了。

思路和代码见云剪贴板

复杂度 \(\mathcal O(n\cdot 2^{2\pi(\sqrt{n})})\),其中 \(\pi(x)\) 表示 \(1\sim x\) 质数个数。

posted @ 2022-06-18 11:43  rui_er  阅读(247)  评论(0编辑  收藏  举报