#P7023. 异或
异或
题目描述
异或是数学运算的一种。在计算机科学中,如同其他位运算一样,异或运算的定义为:对于任意两个整数a和b的每一位,当且仅当a和b在这一位上的值不同,运算结果在这一位为1,否则为0。
例如,3异或5的结果为6。根据上述运算法则,3的四位二进制表示为0011,5的四位二进制表示为0101。对于最高位和最低位,3和5在每一位上的值相同,所以结果为0;对于其余两位,3和5在每一位的值不同,所以结果为1。因此,0011异或0101的结果为0110,也即十进制下的6。
阅读了上面介绍,相信聪明的你一定学会了异或运算的法则,能够灵活运用这一运算了。那么,这里有一道关于异或运算的问题,赶快来试试看吧!
现有一个长度为n的数组(下标为0到n-1),其初始值均为0。
你需要对其进行m次操作,每次操作需要以从 的每个数字异或 作为操作下标(若操作下标超过数组容量大小,则对这一下标的操作可以跳过),对数组这些下标的元素异或 。
最后,你需要依次输出这个数组每个元素的值(保证数组的每个元素在这m次操作过程中均在32位无符号整数范围内)。
输入格式
第一行包含两个整数 。 接下来有 行,每行四个整数,含义见题目描述。
输出格式
只有一行,包含n个非负整数,即在m次操作后数组每个元素的值。
样例
4 2
0 2 0 3
1 3 0 5
3 6 6 5
【说明】
第一次操作,操作下标为0, 1, 2,数组变为:3, 3, 3, 0
第二次操作,操作下标为1, 2, 3,数组变为:3, 6, 6, 5
4 2
0 2 0 3
1 3 1 5
6 3 6 5
【说明】
第一次操作,操作下标为0, 1, 2,数组变为:3, 3, 3, 0
第二次操作,操作下标为0, 3, 2,数组变为:6, 3, 6, 5
4 2
0 2 1 3
1 3 1 5
6 3 5 6
【说明】
第一次操作,操作下标为1, 0, 3,数组变为:3, 3, 0, 3
第二次操作,操作下标为0, 3, 2,数组变为:6, 3, 5, 6
数据范围与提示
对于所有的测试点,满足,保证数组的每个元素在这m次操作过程中均在32位无符号整数范围内。
请选手注意由于输入输出带来的时间开销对题目时间限制的影响。
相关
在以下作业中: