solution-at-arc157-e
虚高 *2800,如果放模拟赛的话人均场切了。
首先,这题的关键点这是一颗 二叉树 洛谷没有翻译出来。
读一下题目容易发现有一个不存在父亲和儿子同时是 Y 这个很强的限制。这启发了我们去看有关于 Y 的限制。发现给你了个什么 YX 的数量,这是什么?这个显然是非叶子节点的 Y 的数量的两倍。再看 XY 的数量是什么,这个也显然是非根节点 Y 的数量的两倍。知道了这些性质,再分类讨论一下根节点是否是 Y 你就知道了叶子节点上 Y 的个数了!
现在整道题的限制只剩下两个了,一个是在非叶子节点放置 Y 的数量和在叶子节点放置 Y 的数量。由于这题只是让你验证是否有解而非计数,所以你设 $f_{u,j,0/1}$ 表示在节点 $u$ 子树中选了 $j$ 个叶子为 Y,有没有选择当前节点时最多选择多少个非叶子节点放 Y。直接转移即可。
时间复杂度 $O(n^2)$。