题目描述
给定一棵n个点有根树,每个点要么是黑色,要么是白色。每一次可以选择一个白点,将它到根的路径染黑。无法操作者输,问最终先手胜负。
分析
设fx为x子树的SG值。
那么枚举子树内的任意一个白点进行转移,分裂开若干棵子树,要求其异或值的mex。
求
那么我们每一次就直接类似一整个trie异或上一个数,然后合并若干个trie就可以得到这个新点的trie了。
时间复杂度O(n log n)
给定一棵n个点有根树,每个点要么是黑色,要么是白色。每一次可以选择一个白点,将它到根的路径染黑。无法操作者输,问最终先手胜负。
设fx为x子树的SG值。
那么枚举子树内的任意一个白点进行转移,分裂开若干棵子树,要求其异或值的mex。
求
那么我们每一次就直接类似一整个trie异或上一个数,然后合并若干个trie就可以得到这个新点的trie了。
时间复杂度O(n log n)