P2458 [SDOI2006]保安站岗
\(\text{solution}\)
看来又很模板啊。
设 \(f_{i, 0/1/2}\) 为以 \(i\) 为根的子树中,自己/父亲/儿子被选了的最小代价。
考虑转移方程:
\[f_{i, 0} = \sum_{v\in son} \min(f_{v, 0}, f_{v, 1}, f_{v, 2})
\]
\[f_{i, 1} = \sum_{v\in son} \min(f_{v, 0}, f_{v, 2})
\]
考虑 \(f_{i, 2}\),一般来说时这样的:
\[f_{i, 2} = \sum_{v\in son} \min(f_{v, 0}, f_{v, 2})
\]
但是我们考虑如果全选 \(f_{v, 2}\) 的话,就没有来覆盖 \(i\) 的了,于是我们特判一下,如果全部选 \(f_{v, 2}\),那么就 $ + \min\limits_{v\in son}(f_{v, 0} - f_{v, 2})$,因为要把其中一个贡献减掉,加上一个改变以后贡献最小的 \(f_{v, 0}\)。

浙公网安备 33010602011771号