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

    ID: 11323 远端评测题 3000ms 512MiB 尝试: 6 已通过: 0 显示难度NOI/NOI+/CTS 上传者: 标签>集训队互测2022O2优化

[集训队互测 2022] 线段树

背景

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

题目描述

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

  • 1 l r:将 al∼ra_{l\sim r} 替换为它的异或差分。形式化地说,令 bi:=ai xor ai−1b_i := a_i \text{ xor } a_{i-1}(l<i≤rl<i\leq r),然后对于每个 l<i≤rl<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。

第二个操作要求将 a2∼5a_{2\sim 5} 替换为它的异或差分,a2∼5a_{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。

第四个操作要求将 a3∼6a_{3\sim 6} 替换为它的异或差分, a3∼6a_{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。

第六个操作要求将 a1∼6a_{1\sim 6} 替换为它的异或差分, a1∼6a_{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]。

数据范围与约定

对于所有数据,保证 1≤n≤2.5×1051\leq n\leq 2.5\times 10^5,1≤q≤1051\leq q\leq 10^5,0≤ai<2300\leq a_i< 2^{30},1≤l≤r≤n1\leq l\leq r\leq n,1≤pos≤n1\leq pos\leq n。

子任务编号 n≤n\leq q≤q\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:∀i≥2,ai=0\forall i\geq 2, a_i=0。

特殊性质 B:0≤ai≤10\leq a_i\leq 1。

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

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

特殊性质 E:没有操作 22。