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$。