# -*- coding:utf-8 -*- # @Author len # @Create 2023/12/27 12:14 # 6.异或和之差 # 问题描述 # 给定一个含有n个元素的数组A,你可以选择两个不相交的子段。求出这两个子段内的数的异或和的差值的最大值。 # 输入格式 # 输入的第一行包含一个整数n。 # 第二行包含n个整数A,相邻整数之间使用一个空格分隔 # 输出格式 # 输出一行包含一个整数表示答案。 # 样例输入 # 6 # 1 2 4 9 2 7 # 样例输出 # 14 # 样例说明 # 两个子段可以分别选1和4,9,2,差值为 15-114 def max_xor_sum_difference(arr): # 预计算异或前缀数组。 n = len(arr) xor_arr = [0] * (n+1) for i in range(1, n+1): xor_arr[i] = xor_arr[i-1] ^ arr[i-1] # 初始化答案。 max_difference = 0 # 遍历所有非重叠子段对。 for i in range(1, n+1): for j in range(i, n+1): for k in range(j+1, n+1): for l in range(k, n+1): # 计算两个子段的异或和。 xor1 = xor_arr[j] ^ xor_arr[i-1] xor2 = xor_arr[l] ^ xor_arr[k-1] # 更新最大差值。 max_difference = max(max_difference, abs(xor1 - xor2)) return max_difference # 样例输入 array_length = int(input()) arr = list(map(int, input().split(" "))) # 输出结果 print(max_xor_sum_difference(arr))