题目链接:
http://codeforces.com/problemset/problem/703/D
题意:
给你n个数,q次查询。每次查询一个区间,求这个区间内所有出现偶数次的数的异或值。
数据范围:
1<=n,m<=10^6.
1<=a[i]<=10^9
样例:
输出:
7
1 2 1 3 3 2 3
5
4 7
4 5
1 3
1 7
1 5
输出:
0
3
1
3
2
题解:
这道题和HDU 3333的做法类似,那个题是求区间不同数字的和。
https://blog.csdn.net/weixin_42757232/article/details/90691366
这道题这道题可以转化为求区间不同数字的异或。首先我们先预处理处前缀异或和。保存在数组pre中。
那么对于区间[l,r], pre[r]^pre[l-1]能算出这个区间内所有出现奇数次的数的异或。一个数异或偶数次就消去了,只剩下奇数次的数。然后我们只要能求出这个区间所有不同数字的异或值,再异或上pre[r]^pre[l-1],