「学习笔记」树形dp
一.树形dp的概念
也就是字面意思:在树上进行dp。
二.树形dp的实现
一般来说,树形dp通过dfs来实现。将它的子树信息整合起来,就是树形dp。状态主要设为 \(dp_{i,0/1}\),\(0\) 表示不选, \(1\) 表示选。
三.例题讲解
-
1. P1352 没有上司的舞会
设 \(dp_{i,0}\) 表示第 \(i\) 个人没来,它的下属的最大快乐值;\(dp_{i,1}\) 表示第 \(i\) 个人来,它的下属的最大快乐值。
设当前点 \(u\) 的儿子是点 \(v\) 那么易得转移方程:
\(\begin{cases}dp_{u,0}=\Sigma \max (dp_{v, 0}, dp_{v, 1}) \\ dp_{u,1}=\Sigma dp_{v,0}\end{cases}\)