随笔分类 - 动态规划/dp / 树上 dp
摘要:P6773 NOI2020 命运 数据结构上做 dp,少见但好用。 思路 首先我们用 dp 来解决这个问题。由于与祖先有关,我们不妨把一个节点的子问题限定在子树内,考虑所有从子树内连向子树外的集合 \(Q'\)。 设 \(f[u][i]\) 为 \(u\) 的集合 \(Q'\) 未被覆盖的祖先深度最
阅读全文
摘要:几何 比赛时候唐了,连状态都没想到。 记录一下 dp 的惯用优化方法。 思路 (此处串 \(x,y\) 从 \(0\) 开始,串 \(s\) 从 \(1\) 开始) 设 \(dp[i][j][k]\) 为第 \(i\) 位时,将 \(s[1,i]\) 分为,串 \(x\) 重复若干次加上串 \(x[
阅读全文
摘要:P3523 POI2011 DYN-Dynamite 小 trick,加双倍经验。 思路 使 \(dis\) 的最大值最小,可以想到二分 \(dis\),然后根据 \(dis\) 判断可行性。 那么可以把问题转化为,所有关键点到选择的点的距离小于 \(dis\) 的前提下,使得使用的点的个数最小。
阅读全文
摘要:P4253 SCOI2015 小凸玩密室 一道紫色的 dp。 思路 首先读题: 要保证任意时刻所有被点亮的灯泡必须连通 在点亮一个灯泡后必须先点亮其子树所有灯泡才能点亮其他灯泡 考虑设 \(g[u][1]\) 为 \(u\) 子树第一个被选中的是子树的根的代价,\(g[u][0]\) 为 \(u\)
阅读全文
摘要:
P3267 JLOI2016/SHOI2016 侦察守卫 互相赋值的双 dp 思路 设 \(f[u][i]\) 表示包括 \(u\) 子树内所有关键点都被覆盖(包括 \(u\)),且至少还可以向 \(u\) 的父亲方向覆盖 \(i\) 层的最小代价。 设 \(g[u][i]\) 表示向下距离大于等于
阅读全文
P3267 JLOI2016/SHOI2016 侦察守卫 互相赋值的双 dp 思路 设 \(f[u][i]\) 表示包括 \(u\) 子树内所有关键点都被覆盖(包括 \(u\)),且至少还可以向 \(u\) 的父亲方向覆盖 \(i\) 层的最小代价。 设 \(g[u][i]\) 表示向下距离大于等于
阅读全文
摘要:P4629 SHOI2015 聚变反应炉 树上背包+树形dp。 算是套娃题吗? 思路 看到数据考虑数据分治。 part1 贪心 \(c_i\leq 1\) 对于这种情况,我们考虑贪心的点亮。 手玩几组数据,发现只要先全部点亮 \(c_i=1\) 的点,都可以得到最优解。 若存在一个 \(c_i=1\
阅读全文
摘要:P7563 JOISC 2021 Day4 最悪の記者 4 (Worst Reporter 4) 线段树合并好题,通过线段树合并特别的方式优化了树形 dp。 思路 根据图中的不等关系连边建图,不难发现最后的图将会是基环树森林和普通的树的森林,我们先考虑对于一棵树要怎么办。 将 \(h_i\) 离散化
阅读全文

浙公网安备 33010602011771号