题目描述
有一个 N 行 N 列的棋盘,初始时上面什么棋子都没有。
小明依次进行 M 次操作。第 i 次操作 (1≤i≤M) 依次做三件事:
- 拿走第 Ri 行上的所有棋子;
- 再拿走第 Ci 列上的所有棋子;
- 最后在第 Ri 行第 Ci 列的格子上放一枚棋子。
请输出 M 次操作全部结束后,棋盘上剩下的棋子个数。
输入格式
第一行两个整数 N,M。
接下来 M 行,第 i 行两个整数 Ri,Ci,表示第 i 次操作的行号与列号。
输出格式
输出一个整数,表示最终棋盘上的棋子个数。
样例 1 输入
3 6
1 1
1 2
3 3
3 2
1 3
1 3
样例 1 输出
2
样例 1 解释
用 (i,j) 表示第 i 行第 j 列的格子。
- 第 1 次操作 (1,1):在 (1,1) 放子。此时棋盘上有 (1,1)。
- 第 2 次操作 (1,2):清空第 1 行拿走 (1,1),在 (1,2) 放子。此时有 (1,2)。
- 第 3 次操作 (3,3):在 (3,3) 放子。此时有 (1,2),(3,3)。
- 第 4 次操作 (3,2):清空第 3 行拿走 (3,3)、清空第 2 列拿走 (1,2),在 (3,2) 放子。此时只有 (3,2)。
- 第 5 次操作 (1,3):在 (1,3) 放子。此时有 (3,2),(1,3)。
- 第 6 次操作 (1,3):先把 (1,3) 的棋子拿走,再在同一格重新放一枚。此时仍是 (3,2),(1,3)。
最终 (3,2) 与 (1,3) 上各有一枚,答案为 2。
注意第 6 次操作对同一个格子先拿后放,最终该格仍有一枚棋子,不能重复计数。
样例 2 输入
2 3
1 2
2 1
1 1
样例 2 输出
1
样例 2 解释
第 1 次在 (1,2) 放子,第 2 次在 (2,1) 放子。第 3 次操作同时清空第 1 行与第 1 列:第 1 行的 (1,2) 和第 1 列的 (2,1) 都被拿走,随后在 (1,1) 放子。最终只剩 1 枚。
这个样例说明:一次操作可能同时清掉多枚棋子,行和列都要考虑。
数据范围与提示
对于所有测试数据,保证 1≤N≤3×105,1≤M≤3×105,1≤Ri≤N,1≤Ci≤N,所有输入均为整数。
| 测试点编号 |
N 的范围 |
M 的范围 |
特殊性质 |
| 1∼3 |
N≤500 |
M≤500 |
无 |
| 4∼5 |
N≤3×105 |
M≤2×105 |
所有 Ci 互不相同 |
| 6 |
M≤3×105 |
所有操作的 (Ri,Ci) 完全相同 |
| 7∼8 |
M≤105 |
无 |
| 9∼10 |
M≤3×105 |
提示:N2 最大可达 9×1010,直接开出整个棋盘是不可行的。