AT_agc017_d [AGC017D] Game on Tree
题意
一棵树,\(1\) 为根。两个人轮流删一颗子树,不能动的输,问先手胜还是后手胜。\(\mathcal{O}(n)\)。
思路
先考虑根只有一个孩子,那么只要断掉就赢。那么如果拓展到链上它的 SG 函数就等价于 \(n-1\) 个点的取石子游戏。
那么拓展到树上,考虑目前加入状态的子树的 SG 函数值是 \(SG(s)\),那么根据定义有 \(SG(s^\prime)=SG(s)\oplus SG(T_v\to u)\)。
假设 \(SG(T_v)=x\),那么算上新的一条边就是一个 \(x+1\) 的取石子游戏,那么 \(SG(T_v\to u)=x+1\)。异或起来即可。

浙公网安备 33010602011771号