QOJ.ac

QOJ

Time Limit: 8 s Memory Limit: 512 MB Total points: 100

# 11272. rspcn

统计

给定整数序列 $a_1,\dots,a_n$ ,共 $m$ 次操作;

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

若 $l\le r$ ,则进行的修改是将 $a_l,\dots,a_r$ 从小到大排序;否则进行的修改是将 $a_r,\dots,a_l$ 从大到小排序。

输入格式

第一行两个整数 $n,m$ ;

第二行 $n$ 个整数 $a_1,\dots,a_n$ ;

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

输出格式

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

样例数据

样例输入

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\%$ 的数据,满足 $n,m\le 10^3$。

对于另外 $20\%$ 的数据,满足 $a_i\le 10$。

对于另外 $20\%$ 的数据,满足 $a_i\le 100$。

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

对于 $100\%$ 的数据,满足 $1\le a_i\le n$,$1\le l,r,x\le n$,$1\le n,m\le 10^6$。