CFCF2201F1.Monotone Monochrome Matrices (Medium Version)
省选/NOI-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
这是本问题的中等难度版本。不同版本之间的区别在于本版本中 n 和 q 的约束更大。只有你解决了本问题的所有版本后,才能进行 hack。
一个大小为 n×n 的单色矩阵是指有 n 行 n 列,每个格子要么是黑色,要么是白色的矩阵。我们用 C[r,c] 表示单色矩阵 C 中第 r 行第 c 列格子的颜色。
如果满足下述条件,我们称该矩阵 C 为单调矩阵(monotone):
- 不存在满足如下三个条件的两行 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) 位置的格子都是白色。
注意,操作具有持久性。也就是说,一次操作后的颜色会影响后续操作。
输入格式
每个测试点包含多个测试用例。第一行包含整数 t(1≤t≤103),表示测试用例数。接下来是每个测试用例的内容。
每个测试用例的第一行包含两个整数 n 和 q(2≤n≤200000,1≤q≤min(n2,200000))。
接下来 q 行,每行包含两个整数 ri, ci,表示第 i 次操作(1≤ri,ci≤n)。
保证每次操作前 (ri,ci) 位置的格子都是白色。
保证所有测试用例中 n 的总和不超过 200000。
保证所有测试用例中 q 的总和不超过 200000。
输出格式
对于每次操作,如果当前的 M 是单调矩阵,输出 "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 的状态如下图所示:
□□□□■□□□□→□□□□■□□□■→□□□□■□□■■→□□■□■□□■■→□□■□■■□■■→■□■□■■□■■→■□■■■■□■■→■■■■■■□■■→■■■■■■■■■
对于不是单调矩阵的操作,红色标记的四个格子就是违反上述条件的位置。