给定树找到从根到叶的任何路径的最大子集XOR。 (即子集XOR可能包括也可能不包括从根到叶的所有元素。因此,两个兄弟或堂兄弟不能属于同一子集。)
答案 0 :(得分:4)
我的建议是首先考虑这个问题:最大xor子集,定义如下:
给定一组整数S = {a1,a2,a3,... a | S |我们在S上定义一个函数X,如下所示:
X(S) = a1 ^ a2 ^ a3 ^ ... ^ a|S|
。 (^代表按位'异或'或'异或')
给定一组N个整数,计算给定起始集的所有子集上X函数的最大值。
假设上述问题可以在T(N)中解决,那么至少你的问题可以用O(N * T(h))来解决。 (N是二叉树中叶子的数量,h是树的高度。)在理解了最大xor子集问题之后,可能会让它变得更好。
根据我的研究,高斯消除可用于解决最大xor子集问题。您可以参考https://math.stackexchange.com/questions/48682/maximization-with-xor-operator。
祝你好运!