QOJ.ac

QOJ

Time Limit: 4 s Memory Limit: 512 MB
[0]

# 7452. rupq

Statistics

给定一个长为 n 的括号序列,每个位置有一个括号 ai,其中 ai=1 代表是左括号 (ai=0 代表是右括号 )ai 位置的括号有一个权值 bi

对任意括号序列,通过不断删除形如 () 的子段直到无法操作,最终可以得到一个唯一的序列,这个序列称为不匹配括号,如 a1=),a2=(,a3=(,a4=),a5=(,这个括号序列的不匹配括号序列为 )((,其不匹配括号对应位置为 1,2,5,其不匹配括号对应位置的 bb1,b2,b5

m 次操作,操作有以下三类:

1 x y:进行单点修改,即 ax:=1ax;bx:=y

2 l r:求 a[l..r] 中不匹配括号对应位置的 b 从左到右的 NAND32 位的按位与非,可以见 https://en.wikipedia.org/wiki/NAND_logic ), max(最大值) ,将二者 xor 后输出。如果不匹配括号为空序列,则 NAND 的答案为 2321max 的答案为 0

NAND 即以 c0=2321 为初值,然后依次 ci=NAND(ci1,bi),对于一个 n 个值的序列 b,最后答案为 cn

3 l r:将 a[l..r]a[r+1..n] 交换位置,b 也做同样的操作。

输入格式

第一行用空格隔开的两个数 n,m

之后 n 行每行用空格隔开的两个数,第 i 行为 ai,bi

之后 m 行,每行表示一个操作。

输出格式

对每个操作 2 输出一行表示答案。

样例数据

样例输入

10 10
0 1
1 9
1 2
0 5
1 1
0 6
1 1
0 4
0 8
1 7
2 5 7
3 1 10
1 1 3
2 1 3
3 2 9
3 4 10
3 7 8
1 10 2
3 3 4
2 5 7

样例输出

4294967295
4294967284
4294967281

子任务

Idea:ccz181078,Solution:ccz181078,Code:ccz181078,Data:nzhtl1477

对于 100% 的数据,

0a[i]1

0b[i]109

1n2×106,1m2×105