logo AlgoBeat OnlineJudge
登录 注册

#143. 【模板】颜色段均摊(珂朵莉树)2 / [CF896C] Willem, Chtholly and Seniorious

内存限制:512 MiB 时间限制:1000 ms 标准输入输出
题目类型:传统 评测方式:文本比较
上传者: Elaina

题目描述

本题数据为自造。

【模板】颜色段均摊 1 去哪了?

——威廉……

——怎么了?

——好像瑟尼欧里斯出问题了……

——我去看看……

瑟尼欧里斯是通过特定顺序连接特殊护符制成的。

经过了 500 多年,这个圣剑现在状况不太好,所以威廉决定彻底检查它。

瑟尼欧里斯有 片护符。威廉将它们排成一行,第 片护符是一个整数

为了维护它,威廉需要执行 次操作。

有四种操作类型:

  • :对于 满足 ,将 赋值给
  • :对于 满足 ,将 赋值给
  • :输出范围 中第 小的数字,即在所有满足 排序后第 小的数字。保证
  • :输出范围 中所有 次幂之和模 ,即

输入格式

第一行包含四个整数 )。

初始值和操作通过如下伪代码生成:

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 == 3):
        x = (rnd() mod (r - l + 1)) + 1
    else:
        x = (rnd() mod vmax) + 1

    if (op == 4):
        y = (rnd() mod vmax) + 1

这里的 是题目中提到的操作类型。

输出格式

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

样例

输入 #1

10 10 7 9

输出 #1

2
1
0
3

输入 #2

10 10 9 9

输出 #2

1
1
3
3

数据范围与提示

说明/提示

对于样例 1,初始数组为

操作如下: