diff --git a/solutions/P2016.md b/solutions/P2016.md new file mode 100644 index 0000000..b52e2a4 --- /dev/null +++ b/solutions/P2016.md @@ -0,0 +1,16 @@ +# P2016 [SEERC 2000] 战略游戏 题解 + +题意:给你一棵树,要求选中一些点,使得每条边至少一个端点被选中。 + +令 $dp_{i, 01}$ 表示以 $i$ 为根的子树,是否选中该节点的最少选中节点数。易得: + +$$ +\begin{aligned} +f_{i, 0} =& \sum f_{u, 1} (u \in child_i) \\ +f_{i, 1} =& \sum \min(dp_{u, 0}, dp_{u, 1}) +\end{aligned} +$$ + +树形 dp 即可。 + +[code](../P2016.cpp) \ No newline at end of file