你是csf,是一名刚刚考上xjtu的大一新生,无意间在图书馆看到了一本Quant算法秘籍,其中有神秘人留下的一道多重集合谜题,如果你将该谜题解出,你就有机会构建出足以支撑你创设一家Hedge Fund的基础模型。谜题如下:
有一个多重集合,初始这个集合是空的,你需要执行 n 次操作,有两种操作:
1 :表示将目前集合中所有元素 +1 。
2 x :表示在多重集合终插入一个数 x 。
每做完一个操作,你需要输出当前集合中元素的异或和。
相关知识:
异或运算:语法为 x⊕y ,满足 0⊕1=1 , 1⊕0=1 , 0⊕0=0 , 1⊕1=0 。
异或和:多个数连续异或的结果,例如 a,b,c,d 的异或和为 a⊕b⊕c⊕d 。
当两个数字进行异或时,首先将两个数字分别写成二进制,进行按位 0/1 异或,然后将所得二进制数再转化成十进制。
如: 3⊕6=0112⊕1102=1012=5 。
在C++中,计算a⊕b写成这样: