A27805.宏量运算

普及+/提高

通过率:0%

时间限制:2.00s

内存限制:256MB

题目描述

时间限制:2000ms
内存限制:256MB

给定一个变量 XXNN 个改变 XX 值的操作。
操作 ii 使用一对整数 (Ti,Ai)(T_i,A_i) 表示,并执行以下操作:

  • 如果 Ti=1T_i=1,将 XX 的值更改为 X and AiX\ {\rm and}\ A_i
  • 如果 Ti=2T_i=2,将 XX 的值更改为 X or AiX\ {\rm or}\ A_i
  • 如果 Ti=3T_i=3,将 XX 的值更改为 X xor AiX\ {\rm xor}\ A_i

XX 的值初始化为 CC,并按以下顺序执行程序:

  • 执行操作 11,然后输出 XX 的结果值。
  • 接下来,按顺序执行操作 1,21, 2,然后输出 XX 的值。
  • 接下来,按顺序执行操作 1,2,31, 2, 3,然后输出 XX 的值。
  • \vdots
  • 接下来,按顺序执行操作 1,2,,N1, 2, \ldots, N,然后输出 XX 的值。

什么是 and, or, xor{\rm and},\ {\rm or},\ {\rm xor}

对于非负整数 AABBand, or, xor{\rm and},\ {\rm or},\ {\rm xor} 运算定义如下:

  • A and BA\ {\rm and}\ B 用二进制表示时,如果 AABB2k2^k 位(k0k \geq 0)的数字都是 11,则 2k2^k 位的数字为 11,否则为 00
  • A or BA\ {\rm or}\ B 用二进制表示时,如果 AABB2k2^k 位(k0k \geq 0)至少有一个数字为 11,则 2k2^k 位的数字为 11,否则为 00
  • A xor BA\ {\rm xor}\ B 用二进制表示时,如果 AABB2k2^k 位(k0k \geq 0)恰有一个数字为 11,则 2k2^k 位的数字为 11,否则为 00

例如,3 and 5=13\ {\rm and}\ 5 = 13 or 5=73\ {\rm or}\ 5 = 73 xor 5=63\ {\rm xor}\ 5 = 6

数据范围\large{数据范围}

  • 1N2×1051 \leq N \leq 2\times 10^5
  • 1Ti31\leq T_i \leq 3
  • 0Ai<2300\leq A_i \lt 2^{30}
  • 0C<2300\leq C \lt 2^{30}
  • 所有输入数值均为整数。

输入格式

对于每个测试文件格式为:

N C\tt{N\ C}
T1 A1\tt{T_1\ A_1}
T2 A2\tt{T_2\ A_2}
\tt{\vdots}
TN AN\tt{T_N\ A_N}

输出格式

按照题目描述输出 NN 行,每行对应一个操作后的结果。

输入输出样例

  • 输入#1

    3 10
    3 3
    2 5
    1 12

    输出#1

    9
    15
    12
  • 输入#2

    9 12
    1 1
    2 2
    3 3
    1 4
    2 5
    3 6
    1 7
    2 8
    3 9

    输出#2

    0
    2
    1
    0
    5
    3
    3
    11
    2

说明/提示

样例 11
XX 的初始值是 1010

  • 操作 11XX 变为 99
  • 接着,操作 11XX 变为 1010 ,然后操作 22 将其变为 1515
  • 接下来,操作 11XX 改为 1212 ,然后操作 22 将其改为 1313 ,接着操作 33 将其改为 1212
首页