luogu#P10009. [集训队互测 2022] 线段树

[集训队互测 2022] 线段树

题目背景

请注意:本题不是线段树模板题

题目描述

给定一个长度为 nn 的序列 a1,a2,ana_1,a_2,\cdots a_n。你需要进行共 qq 次下面两种操作:

  • 1 l r:将 alra_{l\sim r} 替换为它的异或差分。形式化地说,令 bi:=ai xor ai1b_i := a_i \text{ xor } a_{i-1}l<irl<i\leq r),然后对于每个 l<irl<i\leq r,将 aia_i 替换为 bib_i

  • 2 pos:查询 aposa_{pos} 的值。

操作执行完后,你还需要回答最终的 aa 序列。

输入格式

第一行包含一个整数 TT,表示该数据满足第 TT 个子任务的限制。

第二行包含两个整数 n,qn,q,分别表示序列的长度和操作的个数。

第三行包含 nn 个整数 a1,a2,,ana_1,a_2,\cdots,a_n

接下来 qq 行,每行若干个数,表示一个操作。若操作为第一种操作,则此行包含三个数 1 l r 。若操作为第二种操作,则此行包含两个数 2 pos

输出格式

设共有 q2q_2 个第二种操作,则输出共包含 q2+nq_2+n 行。

q2q_2 行,每行输出一个整数,表示该操作的答案。

接下来 nn 行,每行输出一个整数,表示最终的 aa 序列。

1
6 6
1 1 5 1 9 4
2 5
1 2 5
2 4
1 3 6
2 6
1 1 6
9
4
12
1
0
5
4
12
0

提示

更多样例见下发文件。对于第 i+1i + 1 个样例,T=iT = i

样例 1 解释

初始时 a=[1,1,5,1,9,4]a=[1,1,5,1,9,4]

第一个操作要求输出 a5a_5,此时 a5=9a_5=9,故输出 99

第二个操作要求将 a25a_{2\sim 5} 替换为它的异或差分,a25a_{2\sim 5}[1,5,1,9][1,5,1,9],它的异或差分为 [1,4,4,8][1,4,4,8],故操作执行完后,aa 序列变为 [1,1,4,4,8,4][1,1,4,4,8,4]

第三个操作要求输出 a4a_4,此时 a4=4a_4=4,故输出 44

第四个操作要求将 a36a_{3\sim 6} 替换为它的异或差分, a36a_{3\sim 6}[4,4,8,4][4,4,8,4],它的异或差分为 [4,0,12,12][4,0,12,12],故操作执行完后, aa 序列变为 [1,1,4,0,12,12][1,1,4,0,12,12]

第五个操作要求输出 a6a_6,此时 a6=12a_6=12,故输出 1212

第六个操作要求将 a16a_{1\sim 6} 替换为它的异或差分, a16a_{1\sim 6}[1,1,4,0,12,12][1,1,4,0,12,12],它的异或差分为 [1,0,5,4,12,0][1,0,5,4,12,0],故操作执行完后,aa 序列变为 [1,0,5,4,12,0][1,0,5,4,12,0]

最终的 aa 序列为 [1,0,5,4,12,0][1,0,5,4,12,0]

数据范围与约定

对于所有数据,保证 1n2.5×1051\leq n\leq 2.5\times 10^51q1051\leq q\leq 10^50ai<2300\leq a_i< 2^{30}1lrn1\leq l\leq r\leq n1posn1\leq pos\leq n

子任务编号 nn\leq qq\leq 特殊性质 分值 子任务依赖
11 2×1032\times 10^3 88
22 2.5×1052.5\times 10^5 10510^5 A 44
33 B 77
44 CD 1313
55 DE 1212
66 D 1616 55
77 E 1111
88 2929 1,2,3,4,5,6,71,2,3,4,5,6,7

特殊性质 A:i2,ai=0\forall i\geq 2, a_i=0

特殊性质 B:0ai10\leq a_i\leq 1

特殊性质 C:记序列 aa 中非零位置个数为 cc,则 c100c\leq 100

特殊性质 D:操作 11 满足 l=1l=1r=nr=n

特殊性质 E:没有操作 22