题目大意
给定一棵有 n 个节点的树,每个点有黑白两色之一。
Alice和Bob轮流操作,每次先手选择一个白点,将其到根路径上所有点染黑。一开始Alice是先手,两人都选最优策略,不能操作者输。
要求输出Alice是否能赢。如果能赢,那么第一步可以选择哪些节点。
初始时不是所有点都为白点,每个点的颜色会给定。
题目分析
我们先将黑点去掉,白点的父亲设置为它到根路径上第一个白点,重建出一个森林,显然一个子树的胜负状况与其它点无关,且能够通过根节点各儿子节点的子树的胜负状况决定。
那么我们就可以使用 sg 函数来求解了。设 sg(x) 表示以 x 为根的子树的估价函数。
考虑如何递推估价函数。显然,删除