题意
两个人在树上做游戏,一个人要将节点染成白色,一个人要染成黑色, 有些点在游戏前就是白色的,白色先手,有三个棋子连通且颜色相同时对应方获胜,问最后谁获胜(可以平局)。
分析
-
黑色绝对不可能必胜。
-
先考虑初始都是无色。
一个点 度数超过4 或者 度数超过3且有2个以上的儿子不是叶子节点 则白色必胜。
否则只可能是 一条链+至多两个端点有两个儿子(叶子)。
当有两个端点有两个儿子时,如果中间链的长度为奇数必胜(考虑先手从链上第二个点开始,后手必须每次选择前面一个点)。
-
然后考虑初始有白色节点:
没有想到的转化:如果一个点初始是白色节点,在下面坠上三个点,连边:(u - a, a-b,b-c) 这样每次我们一旦给 (u) 染色,后手就必须给 (a) 染色,相当于初始就存在这些点。 -
复杂度 (O(n))