题库练习 「2017 山东一轮集训 Day1」Sim
← 上一题 下一题 →

A6051 | 「2017 山东一轮集训 Day1」Sim

时间限制2500ms
内存限制512MB
通过 / 提交0/0

题目描述

给定一个含 $ n $ 个正整数的数组 $ A $。现有关于它的 $ Q $ 个询问,询问有以下五种类型:

* 1 l r,令 $ S $ 为由下标范围从 $ l $ 到 $ r $ 的不同的元素构成的有序集合,你需要求出
$$ \sum\limits_{1 \leq i < j < k \leq |S|} S_i S_j S_k \pmod {10 ^ 9 + 7} $$
* 2 x y,将下标为 $ x $ 的元素赋值 $ y $
* 3 x,将下标为 $ x $ 的元素从数组中删除
* 4 z y,在下标为 $ z $ 的元素之后插入元素 $ y $(若 $ z $ 等于 $ 0 $,则在数组最前端插入)
* 5 l r,输出下标在 $ l $ 到 $ r $ 范围内的不同元素个数

数组下标从 $ 1 $ 开始,数据保证数组总是非空。

输入格式

输入数据第一行包含两个整数 $ n $ 和 $ q $,分别表示 $ A $ 的长度,以及询问的数量。
第二行包括 $ n $ 个整数,表示给定的数组 $ A $。
接下来的 $ q $ 行,每行包含一个询问,格式见题面。

输出格式

对于每次类型 1 和类型 5 的询问,输出一行包含相应的答案。

输入输出样例

输入 #1
5 8
1 2 3 2 1
1 1 3
5 1 5
2 2 4
1 2 4
3 3
4 0 5
1 1 2
1 1 5
输出 #1
6
3
24
0
78
C++ 编辑器
输入
输出