AT_abc406_d [ABC406D] Garbage Removal

题目描述

[problemUrl]: https://atcoder.jp/contests/abc406/tasks/abc406_d 有一个 $H$ 行 $W$ 列的网格,从上往下数第 $i$ 行、从左往右数第 $j$ 列的单元格记为单元格 $(i, j)$。 网格上有 $N$ 个垃圾,第 $i$ 个垃圾掉落在单元格 $(X_i, Y_i)$ 上。 给定 $Q$ 个查询,请依次处理并求出每个查询的答案。每个查询是以下两种类型之一: - 类型 $1$:以 `1 x` 的格式给出。求出网格第 $x$ 行掉落的垃圾数量作为答案。之后,第 $x$ 行掉落的所有垃圾都被丢弃,并从网格上移除。 - 类型 $2$:以 `2 y` 的格式给出。求出网格第 $y$ 列掉落的垃圾数量作为答案。之后,第 $y$ 列掉落的所有垃圾都被丢弃,并从网格上移除。

输入格式

输入按以下格式从标准输入给出。 > $H$ $W$ $N$ > $X_1$ $Y_1$ > $X_2$ $Y_2$ > $\vdots$ > $X_N$ $Y_N$ > $Q$ > $\text{query}_1$ > $\text{query}_2$ > $\vdots$ > $\text{query}_Q$ 这里,$\text{query}_i$ 是第 $i$ 个查询,按以下任一格式给出。 > $1$ $x$ > > $2$ $y$

输出格式

输出 $Q$ 行。第 $i$ 行输出第 $i$ 个查询的答案。

说明/提示

**「数据范围」** - $1 \leq H, W, N \leq 2 \times 10^5$ - $1 \leq X_i \leq H$ - $1 \leq Y_i \leq W$ - 当 $i \neq j$ 时,$(X_i, Y_i) \neq (X_j, Y_j)$ - $1 \leq Q \leq 2 \times 10^5$ - 对于类型 $1$ 的查询,$1 \leq x \leq H$ - 对于类型 $2$ 的查询,$1 \leq y \leq W$ - 输入的所有值均为整数 **「样例解释 1」** 开始时,垃圾掉落在单元格 $(1, 2), (1, 3), (3, 4), (3, 1), (2, 2)$ 上。 对于第 $1$ 个查询,第 $1$ 行掉落的垃圾是单元格 $(1, 2)$ 和 $(1, 3)$ 上的垃圾,共 $2$ 个,所以答案是 $2$。这两个垃圾被丢弃,剩下的垃圾是单元格 $(3, 4), (3, 1), (2, 2)$ 上的垃圾。 对于第 $2$ 个查询,第 $2$ 行掉落的垃圾是单元格 $(2, 2)$ 上的垃圾,共 $1$ 个,所以答案是 $1$。这个垃圾被丢弃,剩下的垃圾是单元格 $(3, 4), (3, 1)$ 上的垃圾。 对于第 $3$ 个查询,第 $2$ 列没有掉落的垃圾,所以答案是 $0$。 对于第 $4$ 个查询,第 $4$ 列掉落的垃圾是单元格 $(3, 4)$ 上的垃圾,共 $1$ 个,所以答案是 $1$。这个垃圾被丢弃,剩下的垃圾是单元格 $(3, 1)$ 上的垃圾。 对于第 $5$ 个查询,第 $2$ 行没有掉落的垃圾,所以答案是 $0$。