目录
大家觉得写得可以的话,可以加入QQ群907575059.
蓝桥杯2023年第十四届省赛真题-异或和之和
时间限制: 3s 内存限制: 320MB 提交: 241 解决: 66
题目描述
给定一个数组 Ai,分别求其每个子段的异或和,并求出它们的和。或者说,对于每组满足 1 ≤ L ≤ R ≤ n 的 L, R ,求出数组中第 L 至第 R 个元素的异或和。然后输出每组 L, R 得到的结果加起来的值。
输入格式
输入的第一行包含一个整数 n 。
第二行包含 n 个整数 Ai ,相邻整数之间使用一个空格分隔。
输出格式
输出一行包含一个整数表示答案。
样例输入
复制
5
1 2 3 4 5
样例输出
复制
39
【代码实现】
package LQB;
import java.util.Scanner;
/**
* @ProjectName: study3
* @FileName: Ex5
* @author:HWJ
* @Data: 2023/9/18 20:35
*/
public class Ex5 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int n = input.nextInt();
int[] arr = new int[n];
for (int i = 0; i < n; i++) {
arr[i] = input.nextInt();
}
long res = 0;
for (int i = 0; i < n; i++) {
long sum = arr[i];
res += sum;
for (int j = i + 1; j < n; j++) {
sum ^= arr[j];
res += sum;
}
}
System.out.println(res);
}
}