随笔分类 -  DP——树形DP

摘要:LCII.GYM102082E Eulerian Flight Tour (原题是PDF,没有题面的直接页面,就放一个vjudge的链接罢) 首先,当$n$是奇数时,完全图一定是欧拉图,故直接全连即可。 当$n$是奇数时,原图是欧拉图等价于补图上每个节点的度数都为奇。每个节点度数都为奇的充分必要条件 阅读全文
posted @ 2021-03-30 20:06 Troverld 阅读(92) 评论(0) 推荐(0)
摘要:LXXXVIII.CF543D Road Improvement 常规换根DP题。 我们可以设$f_i$表示以$i$为根的子树中的方案数。则有转移式 \(f_i=\prod\limits_{j\in son_i}(f_j+1)\) 其中$+1$的意思是将边$(i,j)$留作坏边。 显然换根DP就很好 阅读全文
posted @ 2021-03-30 19:56 Troverld 阅读(97) 评论(0) 推荐(0)
摘要:LXXXII.UOJ#11. 【UTR #1】ydc的大树 很明显,如果我们令一个黑点$x$为树根,设它的“好朋友”集合为$\mathbb\(,则路径\)(x,\operatorname{\mathbb})$中所有白节点均可以使$x$不开心。这个可以用树上差分来进行路径加。现在关键是求出$\oper 阅读全文
posted @ 2021-03-30 19:46 Troverld 阅读(84) 评论(0) 推荐(0)
摘要:LXXI.[ABC163F]path pass i 思路: 反向考虑。我们计算出不包含任何颜色为$i$的节点的路径的数量,再用总路径数一减就行。 则,我们删去所有颜色为$i$的节点,整棵树就会被分成许多连通块。则不经过任何一个颜色为$i$的节点的路径数量,就是$\sum\dfrac{(\text{连 阅读全文
posted @ 2021-03-30 16:53 Troverld 阅读(117) 评论(0) 推荐(0)
摘要:LXIV.CF1059E Split the Tree 我们假设对于每个位置,已经求出了它可以往上延伸的长度$len[x]$,然后考虑DP。 设$g[x]$表示子树被分完后的最小边的数量。再设$f[x]$表示当这个数量最小时,点$x$能够往上延伸的最长长度。 这运用了贪心的思想:因为$g[x]$少一 阅读全文
posted @ 2021-03-30 16:39 Troverld 阅读(47) 评论(0) 推荐(0)
摘要:LXIII.CF1029E Tree with Small Distances 我们发现,如果一个点与$1$连了边,那么它的儿子们以及它的父亲都会变成合法的。 因此我们可以设$f[i][0/1/2]$表示:$i$的某个儿子中有边/$i$自己有边/$i$的父亲应该有边的最小值。 转移: \(0\):可 阅读全文
posted @ 2021-03-30 16:38 Troverld 阅读(44) 评论(0) 推荐(0)
摘要:LIX.CF815C Karen and Supermarket 思路:一看就是树DP。 设$f[i][j][0/1]$表示: 在以$i$为根的子树中,选了$j$个物品,并且从$i$到$1$的路径上的点 没有/有 全部选上的最小花费。 则初始$f[i][0][0]=0$,\(f[i][1][1]=c 阅读全文
posted @ 2021-03-30 16:31 Troverld 阅读(130) 评论(0) 推荐(0)
摘要:LVIII.CF767C Garland 有两种可行方法: 对于一个点,它存在两个儿子,使得这两个儿子的子树中个存在一棵子树,它们的$size$都是$1/3$。 对于一个点,它的$size$是$2/3$,并且它的子树中存在一个子树,它的$size$是$1/3$。 然后我们只需要对于每个节点记录$ha 阅读全文
posted @ 2021-03-30 16:29 Troverld 阅读(61) 评论(0) 推荐(0)
摘要:LVI.CF633F The Chocolate Spree 奇奇怪怪的直径题 思路1.用多种东西拼出来直径 我们设$f[i][0/1/2/3]$表示: \(0\):子树内一条路径的最大值 \(1\):子树内两条路径的最大值 \(2\):子树内一条路径,且起点为$x$的最大值 \(3\):子树内两条 阅读全文
posted @ 2021-03-30 16:27 Troverld 阅读(86) 评论(0) 推荐(0)
摘要:XLVI.[NOI2002]贪吃的九头龙 思路1. 设$f[i][j][k]$表示:在以$i$为根的子树上有$j$个点是归大头吃的,并且第$i$个点是归第$k$个头吃的。 但这样做不仅复杂度高(似乎是$O(n^5)$?),还有个问题:无法保证每个头都至少吃了一个果子。 思路2. 设$f[i][j][ 阅读全文
posted @ 2021-03-30 16:09 Troverld 阅读(72) 评论(0) 推荐(0)
摘要:XLV.CF1088E Ehab and a component choosing problem 思路1.$n^2$DP。 考虑设$f[i][j][0/1]$表示: 节点$i$,子树分了$j$个集合,节点$i$是/否在某个集合内的最大值。 但是这样是没有前途的——你再怎么优化也优化不了,还是只能从 阅读全文
posted @ 2021-03-30 16:07 Troverld 阅读(60) 评论(0) 推荐(0)