P16458 [UOI 2026] mex plus
题目描述
对于每一对数,你需要从中选一个数放入数组 $A$,另一个数放入数组 $B$。也就是说,对于每一对 $(x, y)$,可以进行以下两种选择之一:
- 将 $x$ 加入数组 $A$,将 $y$ 加入数组 $B$;
- 将 $y$ 加入数组 $A$,将 $x$ 加入数组 $B$。
当所有数对的选择都完成后,数组 $A$ 和数组 $B$ 的长度将相等。
对于一个数组 $C$,记 $\operatorname{mex}(C)$ 表示没有在数组 $C$ 中出现的最小非负整数。例如,若
$
C = [0, 1, 4, 1, 2],
$
则 $\operatorname{mex}(C) = 3$,因为数字 $0$、$1$ 和 $2$ 在数组中出现了,而数字 $3$ 没有。若
$
C = [1, 2, 3],
$
则 $\operatorname{mex}(C) = 0$,因为数字 $0$ 没有在数组中出现。
你需要最大化
$
\operatorname{mex}(A) + \operatorname{mex}(B).
$
在初始的数对集合之后,会给出 $q$ 个询问。每个询问要么向集合中添加一个数对,要么从集合中删除一个数对。在每次询问之后,你需要针对当前的数对集合,重新求出
$
\operatorname{mex}(A) + \operatorname{mex}(B)
$
的最大可能值。
重要的是,在每次询问之后,你可以重新选择所有数对中数字的分配方式。也就是说,之前的选择不会限制后续的答案。
输入格式
第一行包含两个整数 $n$ 和 $q$ $(1 \le n \le 2 \cdot 10^5, 0 \le q \le 2 \cdot 10^5)$ —— 初始的数对个数以及询问的个数。
接下来的 $n$ 行给出初始的数对。
其中第 $i$ 行包含两个整数 $a_i$ 和 $b_i$ $(0 \le a_i \le b_i \le 10^9)$。
再接下来的 $q$ 行给出询问。每个询问为以下两种格式之一:
$
\texttt{+ } x \ y
$
或
$
\texttt{- } x \ y,
$
其中 $0 \le x \le y \le 10^9$。
查询 $\texttt{+ x y}$ 意味着将数对 $(x, y)$ 添加到集合中。
查询 $\texttt{- x y}$ 意味着从集合中删除一个数对 $(x, y)$。保证在执行这样的查询时,集合中至少存在一个这样的数对。
输出格式
输出 $q + 1$ 个整数。
第一个整数是对于初始的数对集合,$
\operatorname{mex}(A) + \operatorname{mex}(B)
$ 的最大值。
然后,在每次询问之后,输出对于当前数对集合,$
\operatorname{mex}(A) + \operatorname{mex}(B)
$ 的最大值。
每个答案输出在单独的一行中。
说明/提示
在第一个例子中,对于初始的数对集合,最优的选择例如是 $A = [0, 2, 1, 4, 3]$,$B = [1, 0, 1, 5, 2]$。此时 $\operatorname{mex}(A) = 5$,$\operatorname{mex}(B) = 3$,总和为 $8$。在添加数对 $(4, 5)$ 之后,可以选择例如 $A = [0, 2, 1, 5, 3, 4]$,$B = [1, 0, 1, 4, 2, 5]$,此时 $\operatorname{mex}(A) = 6$,$\operatorname{mex}(B) = 3$,总和为 $9$。
在第二个例子中,值的多重集为 $\{0, 0, 1, 1, 1, 1, 1, 1, 1, 1\}$。
最优的选择例如是 $A = [1, 1, 1, 1, 0]$,$B = [1, 1, 1, 1, 0]$。此时 $\operatorname{mex}(A) = \operatorname{mex}(B) = 2$,总和为 $4$。
在第三个例子中,没有一个值等于 $0$,因此无论如何选择,都无法使 $0 \in A$ 或 $0 \in B$。因此 $\operatorname{mex}(A) = \operatorname{mex}(B) = 0$,总和为 $0$。
在第四个例子中,最优的选择例如是 $A = [2, 3, 0, 3, 10]$,$B = [2, 3, 1, 4, 0]$。此时 $\operatorname{mex}(A) = 1$,$\operatorname{mex}(B) = 5$,总和为 $6$。
在第五个例子中,最优的选择例如是 $A = [3, 4, 9, 0, 6]$,$B = [1, 5, 0, 0, 5]$。此时 $\operatorname{mex}(A) = 1$,$\operatorname{mex}(B) = 2$,总和为 $3$。
### 计分
- ($2$ 分):$n \le 20$,$q = 0$;
- ($7$ 分):对于所有初始数对满足 $b_i = 10^9$,且对于所有询问满足 $y = 10^9$;
- ($8$ 分):对于所有初始数对满足 $a_i = 0$,且对于所有询问满足 $x = 0$;
- ($9$ 分):$n \le 500$,$q \le 500$;
- ($11$ 分):$q = 0$;
- ($10$ 分):所有询问均为 $\texttt{+ x y}$ 形式;
- ($9$ 分):所有询问均为 $\texttt{- x y}$ 形式;
- ($13$ 分):在任意时刻,对于当前集合中的任意三个数对,若第一个数对与第二个数对共享一个数字,且第二个数对与第三个数对共享一个数字,则存在一个数字同时属于这三个数对;
- ($20$ 分):$n, q \le 10^5$;
- ($11$ 分):无额外限制。
翻译由 DeepSeek V4 Pro 完成