您正在学习如何 像 \texttt{K\color{red}arry5307} 一样ssh AK所有比赛,所以您来做这道数据结构题:
维护一个长为 n 的序列 a,有 m 次操作。
将区间 [l,r] 的值修改为 x。
令集合 p={a_i | l \le i \le r} ,询问集合 p 内的元素个数。
第一行两个整数 n,m。
第二行 n 个整数表示 a_i。
后面 m 行每行为 1\ l\ r\ x 或者 2\ l\ r,分别表示修改和询问。
对于每个询问,输出一个数表示答案。
5 5 1 2 3 4 5 2 1 5 1 2 3 4 2 1 5 2 3 3 2 2 4
5 3 1 1
4 5 1 1 4 5 1 3 4 5 2 3 4 1 1 3 4 2 1 4 2 2 2
1 2 1
对于 100\% 的数据,1\leq n , m \leq 10^5,1\leq a_i\leq 10^9。
子任务编号 | n\leq | m\leq | 特殊性质 | 分值 |
---|---|---|---|---|
\text{Subtask 1} | 5000 | 5000 | 无 | 10 |
\text{Subtask 2} | 10^5 | 10^5 | 无 1 操作 | 15 |
\text{Subtask 3} | 5\times 10^4 | 5\times 10^4 | 1 操作中 l=r | 15 |
\text{Subtask 4} | 10^5 | 10^5 | 1 操作中 l=r | 20 |
\text{Subtask 5} | 10^5 | 10^5 | 无 | 40 |