How can I solve this problem. With a little modification that, the tree is unweighted and every node
i is associated with some value
A[i]. Now calculate the max(
D xor A[i]) , such that i is any node in the path between 2 given nodes u,v. There are as many as 10^5 nodes and 10^5 queries each query contains u, v, and D.
I can solve it by finding the lca = LCA(u,v) and then check for each node between u to lca and v to lca. But the problem is that I have to traverse through every node between u and v. So in worst case if u = leftmost leaf and v = rightmost leaf in the tree. My solution won’t work. How can I solve it more efficiently.