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 翻译