测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A16849. Monotone Monochrome Matrices (Hard Version)

编程题 省选/NOI-
知识点

题目描述

这是该问题的难度提升版。在本版本中,$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" 都会被识别为肯定答案。

输入输出样例

输入 #1
2
3 9
2 2
3 3
2 3
3 1
3 2
1 1
1 2
2 1
1 3
5 17
2 1
4 5
4 1
3 3
3 1
3 5
1 3
1 5
1 1
5 3
5 5
5 1
1 4
5 2
5 4
1 2
2 5
输出 #1
YES
NO
YES
NO
YES
NO
NO
YES
YES
YES
NO
YES
NO
NO
YES
NO
NO
YES
NO
NO
YES
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$ 不是单调时,标红的四个方格表示出现上述条件中的违规格子。
上一题 去做题 下一题