luogu#P7442. 「EZEC-7」维护序列

「EZEC-7」维护序列

题目背景

可怜的 dead_X 收不了歌,于是他出了个水题并给参赛者送了 100100 分。

2022 Update: 已经收了,很水。

题目描述

你需要维护一个序列。

这个序列开始时有 2n2^n 个数,下标从 00 开始。第 ii 个数初始值为 ii,需要支持以下三种操作:

  • 定义 aa 为所有下标为偶数的数组成的子序列,bb 为所有下标为奇数的数组成的子序列,将 a,ba,b 连接,构成新的序列。
  • 定义 aa 为所有下标为奇数的数组成的子序列,bb 为所有下标为偶数的数组成的子序列,将 a,ba,b 连接,构成新的序列。
  • 查询下标为 xx 的数。

总共将进行 mm 次操作。

输入格式

第一行输入两个正整数 n,mn,m

接下来输入 mm 行,每行输入两个非负整数 op,xop,x,代表一次操作。

如果 op=1op=1,若 x=0x=0,代表第一种操作,若 x=1x=1,代表第二种操作。

如果 op=2op=2,代表第三种操作,参数 xx 即为输入的 xx

输出格式

对于每个 op=2op=2 输出一行,即对应的数。

2 7
2 0
1 0
2 1
1 1
2 2
1 0
2 3
0
2
0
1

提示

【样例解释】

所有操作前后的序列从左至右的数如下:

{0,1,2,3}\{0,1,2,3\}

下标为 00 的数为 00

{0,2},{1,3}\{0,2\},\{1,3\} {0,2,1,3}\{0,2,1,3\}

下标为 11 的数为 22

{2,3},{0,1}\{2,3\},\{0,1\} {2,3,0,1}\{2,3,0,1\}

下标为 22 的数为 00

{2,0},{3,1}\{2,0\},\{3,1\} {2,0,3,1}\{2,0,3,1\}

下标为 33 的数为 11

【数据范围】

本题采用捆绑测试。

  • Subtask 1(10 points):不存在 op=1op=1 的操作。
  • Subtask 2(10 points):n10m103n\leq 10,m\leq 10^3
  • Subtask 3(20 points):n10n\leq 10
  • Subtask 4(20 points):m103m\leq 10^3
  • Subtask 5(20 points):对于 op=1op=1 的操作,x=0x=0
  • Subtask 6(20 points):无特殊限制。

对于 100%100\% 的数据,1n321\leq n\leq 321m1061\leq m\leq 10^6

op=1op=1x{0,1}x\in\{0,1\},若 op=2op=20x<2n0\leq x<2^n