[CF1110G]Tree-Tac-Toe[博弈论、构造]

题意

两个人在树上做游戏,一个人要将节点染成白色,一个人要染成黑色, 有些点在游戏前就是白色的,白色先手,有三个棋子连通且颜色相同时对应方获胜,问最后谁获胜(可以平局)。

分析

  • 黑色绝对不可能必胜。

  • 先考虑初始都是无色。

    一个点 度数超过4 或者 度数超过3且有2个以上的儿子不是叶子节点 则白色必胜。

    否则只可能是 一条链+至多两个端点有两个儿子(叶子)

    当有两个端点有两个儿子时,如果中间链的长度为奇数必胜(考虑先手从链上第二个点开始,后手必须每次选择前面一个点)。

  • 然后考虑初始有白色节点:

    没有想到的转化:如果一个点初始是白色节点,在下面坠上三个点,连边:\(u - a, a-b,b-c\) 这样每次我们一旦给 \(u\) 染色,后手就必须给 \(a\) 染色,相当于初始就存在这些点。

  • 复杂度 \(O(n)\)

代码

代码链接

posted @ 2019-02-17 20:20  fwat  阅读(313)  评论(0编辑  收藏  举报