luogu#P9998. [Ynoi2000] rfrqwq

[Ynoi2000] rfrqwq

题目描述

给定一个长为 nn 的序列 aa,每个位置是一个 [1,n][1,n] 内的整数。

定义 f(i,j)f(i,j) 表示有多少 xx 满足 ix<ji\le x<jaxax+1a_x\neq a_{x+1}

mm 次操作:

1 l r x:表示将区间 [l,r][l,r] 中所有元素都修改为 xx

2 l r x:表示查询区间 [l,r][l,r] 中,对任意 li<jrl\le i<j\le r,且 ai=aj=xa_i=a_j=xf(i,j)f(i,j) 的和。

输入格式

第一行两个数 n,mn,m

第二行 nn 个用空格隔开的数表示序列 aa

之后 mm 行,每行四个用空格隔开的数 opt,l,r,xopt,l,r,x 表示一次操作。

输出格式

对每个 22 操作,输出一行一个数表示答案。

10 10
2 1 2 1 8 3 2 1 2 2
2 6 9 2
2 3 10 2
2 2 10 2
2 1 3 2
2 4 10 1
1 2 4 2
2 3 10 2
2 2 7 1
2 2 7 2
2 3 6 2
2
20
20
2
4
30
0
9
0

提示

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

对于 20%20\% 的数据,满足 1n,m10001\le n,m\le 1000

对于另外 20%20\% 的数据,没有 11 操作。

对于另外 10%10\% 的数据,数据中的操作类型在 [1,2][1,2] 内, ai,xa_i,x[1,100][1,100] 内均匀随机生成,区间 [l,r][l,r] 两个端点为 [1,n][1,n] 中均匀随机生成的整数,如果生成后 l>rl>r,则将二者交换。

对于另外 30%30\% 的数据,满足 1n,m1051\le n,m\le 10^5

对于 100%100\% 的数据,满足 1n,m5×1051\le n,m \le 5\times10^51lrn1\le l\le r\le n1ai,xn1\le a_i,x\le n,所有输入均为整数。