P13874 [蓝桥杯 2024 省 Java/Python A] 最大异或结点
题目描述
小蓝有一棵树,树中包含 $N$ 个结点,编号为 $0, 1, 2, \cdots, N-1$,其中每个结点上都有一个整数 $X_i$。他可以从树中任意选择两个不直接相连的结点 $a$、$b$ 并获得分数 $X_a \oplus X_b$,其中 $\oplus$ 表示按位异或操作。
请问小蓝可以获得的最大分数是多少?
输入格式
输入的第一行包含一个整数 $N$,表示有 $N$ 个结点。
第二行包含 $N$ 个整数 $X_0, X_1, \cdots, X_{N-1}$,相邻整数之间使用一个空格分隔。
第三行包含 $N$ 个整数 $F_0, F_1, \cdots, F_{N-1}$,相邻整数之间使用一个空格分隔,其中第 $i$ 个整数表示 $i$ 的父结点编号,$F_i = -1$ 表示结点 $i$ 没有父结点。
输出格式
输出一行包含一个整数表示答案。
说明/提示
**【样例说明】**
选择编号为 3 和 4 的结点,$x_3 = 3$,$x_4 = 4$,他们的值异或后的结果为 $3 \oplus 4 = 7$。
**【评测用例规模与约定】**
对于 $50\%$ 的评测用例,$1 \leq N \leq 1000$;
对于所有评测用例,$1 \leq N \leq 10^5$,$0 \leq X_i \leq 2^{31} - 1$,$-1 \leq F_i \leq N$。