QOJ.ac

QOJ

Time Limit: 2.5 s Memory Limit: 512 MB Total points: 100
[0]

# 9087. 炸脖龙 I

Statistics

给一个长为 n 的序列,m 次操作,每次操作:

  1. 区间 [l,r]x
  2. 对于区间 [l,r],查询:

a[l]^{a[l+1]^{a[l+2]^{\dots ^{a[r]}}}} \mod p

输入格式

第一行两个整数 n,m 表示序列长度和操作数。

接下来一行,n 个整数表示这个序列。

接下来 m 行,可能是以下两种操作之一:

  • 1\ l\ r\ x 表示区间 [l,r] 加上 x
  • 2\ l\ r\ p 表示对区间 [l,r] 进行一次查询,模数为 p

输出格式

对于每个询问,输出一个数表示答案。

样例数据

样例 1 输入

6 4
1 2 3 4 5 6
2 1 2 10000007
2 2 3 5
1 1 4 1
2 2 4 10

样例 1 输出

1
3
1

样例 2 输入

5 5
2 3 3 3 3
1 1 1 530739835
2 1 1 8356089
2 1 4 5496738
1 1 2 66050181
1 2 4 138625417

样例 2 输出

4306230
697527

子任务

Idea:nzhtl1477,Solution:nzhtl1477,Code:nzhtl1477,Data:nzhtl1477

对于100%的数据,n , m \le 500000 , 序列中每个数在[1,2\cdot 10^9]内,p \le 2 \cdot 10^7 , 每次加上的数在[0,2\cdot 10^9]

共10组数据