异段(xor)
题目描述
Y 同学有一个长度为 n 的整数序列 a1,a2,…,an。现在需要处理 q 次操作,操作有两种:
1 l r:询问 ∑i=lrai;
2 l r x:对于所有 l≤i≤r,将 ai 改为 aixorx。
请你按顺序输出所有询问操作的答案。
输入格式
第一行包含一个整数 n。
第二行包含 n 个整数 a1,a2,…,an。
第三行包含一个整数 q。
接下来 q 行,每行表示一次操作,格式如题目描述所示。
输出格式
对于每个 1 l r 操作,输出一行一个整数,表示对应区间和。
样例
样例输入 #1
5
1 2 3 4 5
4
1 1 5
2 2 4 3
1 1 5
1 2 3
样例输出 #1
15
14
1
数据范围与约定
对于 100% 的数据,保证 1≤n,q≤2×105,0≤ai,x≤109,1≤l≤r≤n。
| 测试点编号 |
分值 |
n≤ |
q≤ |
特殊性质 |
| 1∼2 |
10 |
20 |
无 |
| 3∼5 |
15 |
5000 |
特殊性质 A |
| 6∼8 |
2000 |
特殊性质 B |
| 9∼12 |
20 |
2×105 |
无 |
| 13∼16 |
105 |
| 17∼20 |
2×105 |
- 特殊性质 A:保证没有修改操作。
- 特殊性质 B:保证 ai,x≤1023。