SP12726 QN01 - XOR Game

题目描述

现有一个长度为 $n$ 的整数数组($0 \le n \le 1000$),需要从中找到一个连续的子数组 $[a_i, a_j]$($1 \le i, j \le n$),使得这个子数组的异或和最大。也就是说,要找到一段 $a_i \text{ XOR } a_{i+1} \text{ XOR } \ldots \text{ XOR } a_j$ 的值最大的连续子数组。 ### 输入格式 测试用例包含两行数据。 第一行是一个整数 $n$,代表数组中整数的数量。 第二行是 $n$ 个空格分隔的整数,表示数组中的元素 $a_i$。注意,这些整数可以重复出现。 ### 输出格式 输出分为两行。 第一行输出最大异或值。 第二行输出两个整数 $i$ 和 $j$,用空格分隔,表示区间 $[a_i, a_j]$(含两端点),该区间为最大异或值的连续子数组。 如果有多个子数组能达到相同的最大异或值,则输出字典序最小的两个数 $(i, j)$。即满足 (i) $a < c$,或 (ii) $a = c$ 且 $b < d$。 **注意**:子数组不能是空的,可以只包含一个整数(即 $i = j$)。 ### 示例 ``` 输入 #1: 1 4 ``` ``` 输出 #1: 4 1 1 ``` ``` 输入 #2: 3 1 2 3 ``` ``` 输出 #2: 3 1 2 ``` **说明**: 1. 在第一个示例中,数组中只有一个数字 4,所以最大异或就是它本身,$i = j = 1$。 2. 在第二个示例中,最大异或值为 3,对应有两个连续子数组:(i) $[1, 2]$ 因为 $1 \text{ XOR } 2 = 3$,和 (ii) $[3, 3]$,只有一个数字 3。因为 $[1, 2]$ 的字典序比 $[3, 3]$ 小,所以输出为 $[1, 2]$。

输入格式

输出格式

说明/提示

- 数组元素个数 $0 \le n \le 1000$ - 数组中每个元素的值 $0 \le a_i \le 10^9$ **本翻译由 AI 自动生成**