样例 1 解释
对第一组数据,三次询问的答案依次为 。其按位异或和为 。
数据规模与约定
对全部的测试点,保证 ,,,,,。
数据保证 ,。即输入矩阵的总大小和询问总数均不超过 。
提示
如果你不知道什么是按位异或和,可以在你的代码里添加如下的函数:
template <class T>
T getXorSum(T *begin, T *end) {
T ret = 0;
for (T *it = begin; it != end; ++it) ret ^= *it;
return ret;
}
这一函数的作用是计算传入数组(包括 std::vector
)某一左闭右开区间的按位异或和,返回值类型与传入数组的类型相同,调用方法与 std::sort
类似,例如,要求数组 的 的按位异或和,则调用 getXorSum(a + 1, a + 1 + n)
,求 的按位异或和,则调用 getXorSum(a, a + n)
。如果 是 std::vector
,则将上述调用代码里的 a
均改为 a.begin()
即可。