patrick
【问题描述】
$William$的家门前有一条河 ,$William$每天要观察这条河,并且统计河中岛屿的个数。
河床的地形可以抽象为一个长度为 $n$ 的数列 ${ai}$,第$ i$ 位的数字代表河床对应位置的高度。
当水位为 $h$ 时,所有高度低于$ h$ 的位置都会被水覆盖,高度大于等于$ h$ 的地形就露出水面,连成了岛屿。
比如当 ${ai} = {5,3,2,6,1}$,且$ h = 3 $时,河中共有 $2$ 个岛屿,分别为$ {5,3}$ 和 ${6}$。
请你协助$William$统计每一天的岛屿的个数。河床每个位置的高度可能会发生变化,而且水位也会发 生变化。
【输入】
第一行两个正整数 N,M,表示数列的长度,和询问的个数。
第二行 N 个正整数 Hi,表示一开始的数列,即一开始河床在每处的高度。
接下来 M 行,每行有如下两种可能的格式:
Q 外加一个整数 C,表示询问若将水位抬高或降低到 C ⊕Last,湖中会有几个岛。
C 外加两个整数 A,B,表示 A⊕Last 处的高度变为了 B⊕Last。其中 Last 表示上一次询问 (Q 操作) 的答案。Last 一开始等于 0,且 ⊕ 是按位异或的意思。
【输出】
共 M 行,每行一个整数,代表每次询问的答案。
【样例输入输出】
5 7
3 2 1 3 5
Q 1
Q 2
Q 3
C 2 2
C 5 3
C 4 2
Q 2
1
2
1
3
【数据范围】