CF2201F2 Monotone Monochrome Matrices (Hard Version)
题目描述
这是该问题的难度提升版。在本版本中,$n$ 和 $q$ 的限制非常大。仅当你已经解决了该问题的所有版本,才可以 hack。
一个大小为 $n \times n$ 的单色矩阵是一个有 $n$ 行 $n$ 列的矩阵,其中每个格子不是黑色就是白色。我们用 $C[r,c]$ 表示单色矩阵 $C$ 的第 $r$ 行第 $c$ 列的格子的颜色。
我们称这样的矩阵 $C$ 为“单调”,当且仅当它满足以下的条件:
- 不存在两行 $1 \le i < j \le n$ 和两列 $1 \le k < l \le n$,同时满足下列三个条件:
- $C[i,k]=C[j,l]$;
- $C[j,k]=C[i,l]$;
- $C[i,k] \neq C[j,k]$。
现有一个大小为 $n \times n$ 的单色矩阵 $M$,一开始所有格子均为白色。请处理 $q$ 个如下操作:
- $r\;c$:将 $M$ 中第 $r$ 行第 $c$ 列的格子染成黑色。之后,判断 $M$ 是否为单调矩阵。
请注意操作是“持续性的”,即一次操作染色后的矩阵会影响后续所有操作。
对于每个操作,保证操作执行前格子 $(r,c)$ 仍为白色。
请注意,只有你解决了该题所有难度版本后,才可以 hack 此题。
输入格式
每个测试点包含多组数据。第一行包含测试组数 $t$($1 \le t \le 10^3$)。每组数据描述如下。
每组数据第一行包含两个整数 $n$ 和 $q$($2 \le n \le \color{red}{2\,000\,000}$,$1 \le q \le \min(n^2,\color{red}{2\,000\,000})$)。
接下来 $q$ 行,每行包含两个整数 $r_i$, $c_i$,表示第 $i$ 次操作($1 \le r_i,c_i \le n$)。
对于每个操作,保证在操作执行前,$(r,c)$ 仍为白色。
保证所有测试数据中 $n$ 的总和不超过 $\color{red}{2\,000\,000}$。
保证所有测试数据中 $q$ 的总和不超过 $\color{red}{2\,000\,000}$。
输出格式
对于每个操作,输出一行 “YES” 或 “NO”(不区分大小写),表示操作后的矩阵是否为单调矩阵。
你可以任选大小写输出答案。例如 "yEs"、"yes"、"Yes" 都会被识别为肯定答案。
说明/提示
对于第一个测试样例,$M$ 的大小为 $3 \times 3$。每次操作后 $M$ 的状态如下:
$$
\quad\, \begin{bmatrix} \square & \square & \square\\ \square & \blacksquare & \square\\ \square & \square & \square \end{bmatrix} \to \begin{bmatrix} \square & \square & \square\\ \square & \color{red}{\blacksquare} & \color{red}{\square}\\ \square & \color{red}{\square} & \color{red}{\blacksquare} \end{bmatrix} \to \begin{bmatrix} \square & \square & \square\\ \square & \blacksquare & \blacksquare\\ \square & \square & \blacksquare \end{bmatrix} \\
\to \begin{bmatrix} \square & \square & \square\\ \color{red}{\square} & \color{red}{\blacksquare} & \blacksquare\\ \color{red}{\blacksquare} & \color{red}{\square} & \blacksquare \end{bmatrix} \to \begin{bmatrix} \square & \square & \square\\ \square & \blacksquare & \blacksquare\\ \blacksquare & \blacksquare & \blacksquare \end{bmatrix} \to \begin{bmatrix} \color{red}{\blacksquare} & \color{red}{\square} & \square\\ \color{red}{\square} & \color{red}{\blacksquare} & \blacksquare\\ \blacksquare & \blacksquare & \blacksquare \end{bmatrix} \\
\to \begin{bmatrix} \color{red}{\blacksquare} & \blacksquare & \color{red}{\square}\\ \color{red}{\square} & \blacksquare & \color{red}{\blacksquare}\\ \blacksquare & \blacksquare & \blacksquare \end{bmatrix} \to \begin{bmatrix} \blacksquare & \blacksquare & \square\\ \blacksquare & \blacksquare & \blacksquare\\ \blacksquare & \blacksquare & \blacksquare \end{bmatrix} \to \begin{bmatrix} \blacksquare & \blacksquare & \blacksquare\\ \blacksquare & \blacksquare & \blacksquare\\ \blacksquare & \blacksquare & \blacksquare \end{bmatrix}
$$
当矩阵 $M$ 不是单调时,标红的四个方格表示出现上述条件中的违规格子。
由 ChatGPT 5 翻译