给自己跪了,这道题居然没做出来o(╥﹏╥)o 题目大意:给定一个长度为n的整数数组,问有多少对互不重叠的非空区间,使得两个区间内的数的异或和为0。n<=1000,数组中的数字<100000 思路:一开始想的是枚举中间点,然后开一个f[i][k]数组表示到i点异或和为k的数量,然后从左算一遍,从右算一遍相乘就好了。无奈空间时间都不可用。 看了题解。。枚举其中一个区间[i,j],其实显然这个区间的异或和我们可以利用前缀和计算。那么我们只需要知道[1,i-1]中有多少个区间的异或和与当前[i,j]的相同就好了。其实枚举一遍放桶里就好了!!枚举的是以a[i-1]作为结尾的区间的异或结果放入...