传统题 2000ms 256MiB

序列 2

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

Description

你有一个整数序列 aa,某一天你闲着无聊想对它进行 mm 次操作。

操作分为 44 种类型:

  • $1\ l\ r : \forall i \in [l,r], a_i \rightarrow \phi(a_i)$
  • 2 l r x:i[l,r],aix2\ l\ r\ x: \forall i \in [l,r], a_i \rightarrow x
  • $3\ l\ r\ x\ y: \forall i \in [l,r], a_i \rightarrow \left( \sum_{i=l}^{r}a_i^x \right) \bmod y$
  • $4\ l\ r\ x\ y: 输出 \left( \sum_{i=l}^{r}a_i^x \right) \bmod y$

其中 ϕ(i)\phi(i) 指欧拉函数。

Format

Input

第一行为数据组数 T (1T5)T\ (1 \le T \le 5)

对于每组数据,输入四个整数 $n,m,seed,vmax\ (1 \le n,m \le 10^5,1 \le seed,vmax \le 10^7)$。

接下来的数据,按照如下伪代码的方式生成:

def rnd():
    ret = seed 
    seed = (seed * 7 + 13) mod 1000000007 
    return ret 
for i = 1 to n: 
    a[i] = (rnd() mod vmax) + 1 
for i = 1 to m: 
    op = (rnd() mod 4) + 1 
    l = (rnd() mod n) + 1 
    r = (rnd() mod n) + 1 
    if (l > r): 
        swap(l, r) 
    if (op == 2) 
        x = (rnd() mod vmax) + 1 
    if (op == 3) or (op == 4): 
        x = (rnd() mod vmax) + 1 
        y = (rnd() mod vmax) + 1

Output

对于每个类型为 44 的操作,输出一行一个数作为答案。

Samples

1
7 7 7 7
4

Hints

$\phi(i)=\sum_{j=1}^{i-1}[gcd(i,j)=1].\ \phi(0)=0,\ \phi(1)=1,\ \phi(2)=1\dots$

以下是对样例 1 的解释。

aia_i 操作
1 7 7 7 7 7 71\ 7\ 7\ 7\ 7\ 7\ 7 3 7 7 2 43\ 7\ 7\ 2\ 4
1 7 7 7 7 7 11\ 7\ 7\ 7\ 7\ 7\ 1 2 1 6 72\ 1\ 6\ 7
7 7 7 7 7 7 17\ 7\ 7\ 7\ 7\ 7\ 1 3 1 2 3 53\ 1\ 2\ 3\ 5
1 1 7 7 7 7 11\ 1\ 7\ 7\ 7\ 7\ 1 1 1 51\ 1\ 5
1 1 6 6 6 7 11\ 1\ 6\ 6\ 6\ 7\ 1 2 3 7 72\ 3\ 7\ 7
1 1 7 7 7 7 71\ 1\ 7\ 7\ 7\ 7\ 7 1 1 51\ 1\ 5
1 1 6 6 6 7 71\ 1\ 6\ 6\ 6\ 7\ 7 4 1 4 3 54\ 1\ 4\ 3\ 5

Limitation

对于 20%20\% 的数据,保证 1n,m10001 \le n,m \le 1000

对于 100%100\% 的数据,保证 1n,m105,1seed,vmax1071 \le n,m \le 10^5,1 \le seed,vmax \le 10^7

时空限制:2000ms/256MiB。

8.23普及提高大联欢【Div.1+2】

未参加
状态
已结束
规则
OI
题目
6
开始于
2023-8-23 8:30
结束于
2023-8-23 13:00
持续时间
4.5 小时
主持人
参赛人数
18