题目描述:
给定一个数组 Ai,分别求其每个子段的异或和,并求出它们的和。或者说,对于每组满足 1 ≤ L ≤ R ≤ n 的 L, R ,求出数组中第 L 至第 R 个元素的异或和。然后输出每组 L, R 得到的结果加起来的值。
代码:
package lanqiao;import java.math.BigInteger;
import java.util.*;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);long sum = 0;int n = sc.nextInt();int[] a = new int[n];for(int i = 0;i < n;i ++){a[i] = sc.nextInt();}for(int i = 0;i < n;i ++){int temp = a[i];sum += temp;for(int j = i + 1;j <n;j ++){temp ^= a[j];sum += temp;}}System.out.println(sum);}
}