U535994 J-D 小梦的数据结构
题目描述
小梦非常喜欢数据结构,这天他给小追出了一道数据结构题。
小追有一个长度为 $n$ 的数组 $a$ ,小梦希望他在数组上维护一个数据结构,支持修改和查询两种操作。具体的:
$\rm 1.$ 修改:输入 $i,\ x$,执行 $a_i = x$。
$2.$ 查询:输入 $x$,查询:$a$ **中没出现过的**最小的不小于 $x$ 的非负整数并输出($mex_x$)。
现在小梦给出了 $q$ 次操作,他要小追对 $a$ 数组执行这些修改操作,并将所有查询操作的答案都求出。但小追并不擅长数据结构,于是希望你帮他完成这个难题,请你帮帮他吧。
输入格式
**本题有多组测试数据。**
输入的第一行包含一个正整数 $T$,表示数据组数。
接下来包含 $T$ 组数据,每组数据的格式如下:
第一行两个正整数 $n, q$,分别表示数组 $a$ 的长度,和小梦的操作次数。
第二行 $n$ 个非负整数 $a_i$,表示数组 $a$。
接下来 $q$ 行,每行一个操作,首先输入一个 $op$。
$\bullet$ 如果 $op=1$,则再输入两个空格隔开的整数 $i\ x$,表示修改操作的两个参数。
$\bullet$ 如果 $op=2$,则再输入一个整数 $x$,表示查询操作的参数。
输出格式
对于每组测试数据:
对于每个修改操作,在单独的一行输出一个整数表示答案。
说明/提示
**【样例 1 解释】**
数组 $a=\{2,3,4,7,8,9,11,20\}$。
查询不小于 $19$ 的最小未出现非负整数 $mex_{19}$,结果为 $19$。
$......$
修改 $a_7=12$。
此时再查询不小于 $11$ 的最小未出现非负整数 $mex_{11}$,结果就是 $11$。
**【数据范围】**
令 $N$ 表示 $T$ 组数据中 $n$ 的总和,$Q$ 表示 $q$ 的总和。
对于 $\rm 20\%$ 的数据有:$T = 1, 1 \leq N,Q \leq 1000$。
对于 $40\%$ 的数据有:$1 \leq T \leq 5, 1 \leq N, Q, a_i,x \leq 10^5$。
另对于 $20\%$ 的数据有:$1 \leq T \leq 5, 1 \leq N, Q \leq 10^5, 0 \leq a_i,x \leq 10^9$,且只包含查询操作。
对于所有的测试数据有: $1 \leq T \leq 10, 1 \leq N, Q \leq 2 \times 10^5, 0 \leq a_i,x \leq 10^9$。