#tRIEybttg020303. 1473:【例题3】Codechef REBXOR

1473:【例题3】Codechef REBXOR

好的,我将题目中的数字和数学表达式用 ...... 标出。


题目描述

给定一个含 NN 个元素的数组 AA,下标从 11 开始。请找出下面式子的最大值:

$$(A[l_1] \oplus A[l_1+1] \oplus \dots \oplus A[r_1]) + (A[l_2] \oplus A[l_2+1] \oplus \dots \oplus A[r_2])$$

其中 1l1r1<l2r2N1 \le l_1 \le r_1 < l_2 \le r_2 \le Nxyx \oplus y 表示 xxyy 的按位异或。


输入格式

第一行一个整数 NN,表示数组中的元素个数。
第二行包含 NN 个整数 A1,A2,,ANA_1, A_2, \dots, A_N

输出格式

输出一行,包含给定表达式可能的最大值。


数据范围

  • N400000N \le 400000
  • Ai2311A_i \le 2^{31} - 1

输入样例

5
1 2 3 1 2

输出样例

6

样例解释

数组 A=[1,2,3,1,2]A = [1, 2, 3, 1, 2]

满足条件 1l1r1<l2r251 \le l_1 \le r_1 < l_2 \le r_2 \le 5 的分割方式中:

  1. (l1,r1,l2,r2)=(1,2,3,3)(l_1, r_1, l_2, r_2) = (1, 2, 3, 3)
    第一段异或和:12=31 \oplus 2 = 3
    第二段异或和:33
    总和:3+3=63 + 3 = 6

  2. (1,2,4,5)(1, 2, 4, 5)
    第一段异或和:12=31 \oplus 2 = 3
    第二段异或和:12=31 \oplus 2 = 3
    总和:66

  3. (3,3,4,5)(3, 3, 4, 5)
    第一段异或和:33
    第二段异或和:12=31 \oplus 2 = 3
    总和:66

最大值为 66


输出 66


这样题目就完整了,所有数字和数学表达式都用 ...... 标出。