G. Shenchuan想考一道数学题

    传统题 1000ms 256MiB

Shenchuan想考一道数学题

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

Problem Description

Shenchuan希望以维护一个长度为 nn 的数组,这个数组的下标为从 11 到 nn 的正整数。

一共有 mm 个操作,可以分为两种:

  • 0 l r 表示将第 ll 个到第 rr 个数( al,al+1...ara_l,a_{l+1} ...a_r)中的每一个数 aia_i 替换为 caic^{a_i},即 cc 的 aia_i 次方,其中 cc 是输入的一个常数,也就是执行赋值 ai=caia_i = c^{a_i}。

  • 1 l r 求第 ll 个到第 rr 个数的和,也就是输出: ∑i=lrai\sum_{i=l}^{r}a_i

因为这个结果可能会很大,所以你只需要输出结果  mod  p\bmod \space p 的值即可。

Input Format

第一行有四个整数 n,m,p,cn, m, p, c,所有整数含义见问题描述。
接下来一行 nn 个整数,表示 aa 数组的初始值。
接下来 mm 行,每行三个整数,其中第一个整数表示了操作的类型。

  • 如果是 00 的话,表示这是一个修改操作,操作的参数为 l,rl, r。
  • 如果是 11 的话,表示这是一个询问操作,操作的参数为 l,rl, r。

Output Format

对于每个询问操作,输出一行,包括一个整数表示答案  mod  p\bmod \space p 的值。

Sample

样例输入 #1

4 4 7 2
1 2 3 4
0 1 4
1 2 4
0 1 4
1 1 3

样例输出 #1

0
3

样例输入 #2

1 40 19910626 2
0
0 1 1
1 1 1
0 1 1
1 1 1
0 1 1
1 1 1
0 1 1
1 1 1
0 1 1
1 1 1
0 1 1
1 1 1
0 1 1
1 1 1
0 1 1
1 1 1
0 1 1
1 1 1
0 1 1
1 1 1
0 1 1
1 1 1
0 1 1
1 1 1
0 1 1
1 1 1
0 1 1
1 1 1
0 1 1
1 1 1
0 1 1
1 1 1
0 1 1
1 1 1
0 1 1
1 1 1
0 1 1
1 1 1
0 1 1
1 1 1

样例输出 #2

1
2
4
16
65536
11418102
18325590
13700558
13700558
13700558
13700558
13700558
13700558
13700558
13700558
13700558
13700558
13700558
13700558
13700558

Hint

1≤n,m≤5×1041\le n,m \le 5\times 10^4,1≤p≤1081 \le p \le 10^8,0<c<p0< c < p,0≤ai<p0 \le a_i < p。

重庆邮电大学第十七届ACM程序设计大赛(现场赛)

未参加
状态
已结束
规则
XCPC
题目
11
开始于
2024-3-16 13:05
结束于
2024-3-16 18:05
持续时间
5 小时
主持人
参赛人数
2