二叉树中的最大Xor子集

时间:2014-01-14 20:21:47

标签: algorithm

给定树找到从根到叶的任何路径的最大子集XOR。 (即子集XOR可能包括也可能不包括从根到叶的所有元素。因此,两个兄弟或堂兄弟不能属于同一子集。)

1 个答案:

答案 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

祝你好运!