题目描述
现有一个长度为 n 的序列 {X1,X2,…,Xn},要求支持两种操作:
- 0 l r:对于 i∈[l,r],Xi←Xi2modp。
- 1 l r:询问 ∑i=lrXi。
输入格式
第一行有三个整数 n,m,p,分别代表序列的长度、平方操作与询问操作的总次数以及在平方操作中所要模的数。
接下来一行 n 个数代表一开始的序列 {X1,X2,…,Xn}。
接下来 m 行,每行三个整数 op,l,r。其中 op 代表本次操作的类型。若 op=0,代表这是一次平方操作,平方的区间为 [l,r];如果 op=1,代表这是一次询问操作,询问的区间为 [l,r]。
输出格式
对于每次的询问操作,输出一行代表这段区间内数的总和。
注意:答案没有对任何数取模。
3 3 11
1 2 3
1 1 3
0 1 3
1 1 3
6
14
提示
对于 100% 的数据,Xi∈[0,p), l,r∈[1,n].
n,m,p 的范围如下:
测试点编号 |
n |
m |
p |
1 |
1000 |
233 |
2 |
2332 |
3 |
100000 |
5 |
4 |
8192 |
5 |
23 |
6 |
45 |
7 |
37 |
8 |
55000 |
4185 |
9 |
5850 |
10 |
2975 |
11 |
2542 |
12 |
2015 |
13 |
60000 |
2003 |
14 |
65000 |
2010 |
15 |
70000 |
4593 |
16 |
75000 |
4562 |
17 |
80000 |
1034 |
18 |
85000 |
5831 |
19 |
90000 |
9905 |
20 |
100000 |
9977 |
题目来源
鸣谢佚名上传