CFCF2201F2.Monotone Monochrome Matrices (Hard Version)
省选/NOI-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
这是该问题的难度提升版。在本版本中,n 和 q 的限制非常大。仅当你已经解决了该问题的所有版本,才可以 hack。
一个大小为 n×n 的单色矩阵是一个有 n 行 n 列的矩阵,其中每个格子不是黑色就是白色。我们用 C[r,c] 表示单色矩阵 C 的第 r 行第 c 列的格子的颜色。
我们称这样的矩阵 C 为“单调”,当且仅当它满足以下的条件:
- 不存在两行 1≤i<j≤n 和两列 1≤k<l≤n,同时满足下列三个条件:
- C[i,k]=C[j,l];
- C[j,k]=C[i,l];
- C[i,k]=C[j,k]。
现有一个大小为 n×n 的单色矩阵 M,一开始所有格子均为白色。请处理 q 个如下操作:
- rc:将 M 中第 r 行第 c 列的格子染成黑色。之后,判断 M 是否为单调矩阵。
请注意操作是“持续性的”,即一次操作染色后的矩阵会影响后续所有操作。
对于每个操作,保证操作执行前格子 (r,c) 仍为白色。
请注意,只有你解决了该题所有难度版本后,才可以 hack 此题。
输入格式
每个测试点包含多组数据。第一行包含测试组数 t(1≤t≤103)。每组数据描述如下。
每组数据第一行包含两个整数 n 和 q(2≤n≤2000000,1≤q≤min(n2,2000000))。
接下来 q 行,每行包含两个整数 ri, ci,表示第 i 次操作(1≤ri,ci≤n)。
对于每个操作,保证在操作执行前,(r,c) 仍为白色。
保证所有测试数据中 n 的总和不超过 2000000。
保证所有测试数据中 q 的总和不超过 2000000。
输出格式
对于每个操作,输出一行 “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×3。每次操作后 M 的状态如下:
□□□□■□□□□→□□□□■□□□■→□□□□■□□■■→□□■□■□□■■→□□■□■■□■■→■□■□■■□■■→■□■■■■□■■→■■■■■■□■■→■■■■■■■■■
当矩阵 M 不是单调时,标红的四个方格表示出现上述条件中的违规格子。