U330908 [CodeChef - REBXOR] Nikitosh and xor

题目背景

随机数据。

题目描述

给出一个长度为 $n$ 序列 $A$,其下标为 $1 \sim n$。请求出其两个不相交的子区间 $A[l_1 \sim r_1], A[l_2 \sim r_2]$,其中 $1 \le l_1 \le r_1 < l_2 \le r_2 \le n$,使得这两个区间的**异或和**之和最大。 即找出一组 $l_1, r_1, l_2, r_2$,最大化 $(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])$,其中 $\oplus$ 为按位异或($\operatorname{xor}$)操作。

输入格式

第一行包含一个整数 $n$,表示数组中元素的数量。 第二行包含 $n$ 个空格分隔的整数,分别表示 $A_1, A_2, \dots, A_n$。

输出格式

输出 $1$ 个整数,表示给定表达式的最大值。

说明/提示

对于 $40\%$ 的数据,$2 \le n \le 10^4$; 对于 $100\%$ 的数据,$2 \le n \le 4 \times 10^5$,$0 \le A_i \le 10^9$。