#xxs004. 区间加lowbit区间加区间求和(rplrprq)[2026 模拟赛一 T4]

区间加lowbit区间加区间求和(rplrprq)[2026 模拟赛一 T4]

题目描述

给定长度为 nn 的正整数序列 aa。对于正整数 xx,定义 lowbit⁡(x)\operatorname{lowbit}(x) 为 xx 的二进制表示中最低位的 11 所代表的数值。例如,1212 的二进制表示为 11001100,所以 lowbit⁡(12)=4\operatorname{lowbit}(12)=4。

依次执行 qq 次操作。每次操作给出类型 tt 和下标区间 [l,r][l,r]:

  • t=1t=1:将区间内每个 aia_i 改为 ai+lowbit⁡(ai)a_i+\operatorname{lowbit}(a_i);
  • t=2t=2:将区间内每个 aia_i 加 11;
  • t=3t=3:输出区间内所有数的和。

每次修改立即生效,后续操作使用修改后的序列。保证初始以及每次操作后均有 1≤ai<2501\le a_i<2^{50}。

输入格式

第一行包含两个整数 n,qn,q。

第二行包含 nn 个整数 a1,a2,…,ana_1,a_2,\ldots,a_n。

接下来 qq 行,每行包含三个整数 t,l,rt,l,r。

输出格式

对每个类型为 33 的操作,输出一行一个整数,表示当前区间和。

样例

输入

4 5
1 3 4 6
3 1 4
1 1 3
3 1 4
2 2 4
3 2 4

输出

14
20
21

样例解释

初始总和为 1414。两次修改后,序列依次变为 (2,4,8,6)(2,4,8,6)、(2,5,9,7)(2,5,9,7),后两次查询的答案分别为 20,2120,21。

数据范围

测试点编号 n≤n\le q≤q\le 特殊性质
1--2 2000 3×1053\times10^5 无
3 5×1055\times10^5 A
4 B
5--7 C
8--10 D
11 3×1043\times10^4 无
12 5×1045\times10^4
13--16 10510^5
17--18 5×1055\times10^5 2×1052\times10^5
19--20 3×1053\times10^5

对于所有测试点,1≤n≤5×1051\le n\le5\times10^5,1≤q≤3×1051\le q\le3\times10^5,1≤t≤31\le t\le3,1≤l≤r≤n1\le l\le r\le n,初始及每次操作后均有 1≤ai<2501\le a_i<2^{50}。所有输入数均为整数。

特殊性质 A:每个类型为 11 或 22 的操作均满足 l=rl=r。

特殊性质 B:不存在类型为 11 的操作。

特殊性质 C:不存在类型为 22 的操作。

特殊性质 D:每个类型为 11 或 22 的操作均满足 l=1,r=nl=1,r=n。