#B3665. 小清新数据结构题
小清新数据结构题
题目描述
给定 条数据,第 条数据有 个数,依次记为 。
现在有 次询问,每次询问第 条数据的第 个数,即 是多少。
为了避免输出过大,你只需要输出所有询问的答案的按位异或和。
按位异或指的是 C++ 中的「^」运算符。你可以参考「说明/提示」中的代码求出若干个数的按位异或和。
输入格式
第一行是两个整数,表示数据条数 和询问次数 。
接下来 行,每行依次表示一条数据,每行首先是一个整数,表示本条数据的数字个数 ,接下来 个整数,依次表示本条数据的每个数字。
接下来 行,每行两个整数 ,表示一次查询。
输出格式
输出一行一个整数表示所有询问的答案的按位异或之和。
2 2
2 1 2
3 4 5 6
2 2
1 2
7
提示
样例 1 解释
第一次询问的结果为 ,第二次询问的结果为 。他们做按位异或的结果为 。
数据规模与约定
对于全部的测试点,保证 ,,,,且 ,即 。
提示
对于使用 C++ 的选手,你可以用如下的函数返回若干个数的按位异或和。
#include <vector>
unsigned int getXorSum(const std::vector<unsigned int>& rec) {
unsigned ret = 0;
for (int i = 0; i < rec.size(); ++i) ret ^= rec[i];
return ret;
} // 将需要求按位异或和的数放在 vector 中传参。
请注意大量数据读入对程序效率造成的影响。