#P9995. [Ynoi2000] rspcn

[Ynoi2000] rspcn

题目描述

给定整数序列 a1,,ana_1,\dots,a_n ,共 mm 次操作;

每次操作给出 l,r,xl,r,x ,首先进行修改,然后查询 a1,,axa_1,\dots,a_x 中有多少种不同的值。

lrl\le r ,则进行的修改是将 al,,ara_l,\dots,a_r 从小到大排序;否则进行的修改是将 ar,,ala_r,\dots,a_l 从大到小排序。

输入格式

第一行两个整数 n,mn,m

第二行 nn 个整数 a1,,ana_1,\dots,a_n

接下来 mm 行,每行三个整数 lc,rc,xcl\oplus c,r\oplus c,x\oplus c ,依次表示每次操作,其中 \oplus 是按位异或,cc 是上次操作的查询的答案(特别地,对于第一次操作,c=0c=0)。

输出格式

mm 行,每行一个整数,依次表示每次操作的查询的答案。

9 7
2 2 8 8 2 8 2 1 3
2 2 2
3 7 6
6 7 1
9 6 7
10 11 10
7 0 5
5 1 7
1
2
1
2
3
2
2

提示

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

对于 20%20\% 的数据,满足 n,m103n,m\le 10^3

对于另外 20%20\% 的数据,满足 ai10a_i\le 10

对于另外 20%20\% 的数据,满足 ai100a_i\le 100

对于另外 20%20\% 的数据,满足 n,m105n,m\le 10^5

对于 100%100\% 的数据,满足 1ain1\le a_i\le n1l,r,xn1\le l,r,x\le n1n,m1061\le n,m\le 10^6