AT_abc391_c [ABC391C] Pigeonhole Query
题目描述
[problemUrl]: https://atcoder.jp/contests/abc391/tasks/abc391_c
有 $N$ 只鸽子,编号为 $1$ 至 $N$。另有 $N$ 个鸽巢,编号为 $1$ 至 $N$。初始时,鸽子 $i$ 位于巢 $i$ 中($1 \leq i \leq N$)。
请依次处理 $Q$ 个查询。查询有两种类型,以下列形式给出:
- `1 P H`:将鸽子 $P$ 移动到巢 $H$。
- `2`:输出包含多只鸽子的鸽巢数量。
输入格式
输入通过标准输入按以下格式给出:
> $N$ $Q$
> $\mathrm{query}_1$
> $\mathrm{query}_2$
> $\vdots$
> $\mathrm{query}_Q$
每个查询为以下两种形式之一:
> $1$ $P$ $H$
> $2$
输出格式
根据题目要求,按顺序输出每个查询的答案,每个答案占一行。
说明/提示
### 约束条件
- $2 \leq N \leq 10^6$
- $1 \leq Q \leq 3 \times 10^5$
- $1 \leq P, H \leq N$
- 对于类型 `1` 的查询,移动前鸽子 $P$ 不在巢 $H$ 中
- 输入均为整数
### 样例解释 1
初始时,鸽子 $1,2,3,4$ 分别位于巢 $1,2,3,4$。
- 第 $1$ 个查询:巢 $1,2,3,4$ 中分别有 $1,1,1,1$ 只鸽子。没有包含多只鸽子的巢,输出 $0$。
- 第 $2$ 个查询:将鸽子 $1$ 移动到巢 $2$。
- 第 $3$ 个查询:巢 $1,2,3,4$ 中分别有 $0,2,1,1$ 只鸽子。包含多只鸽子的巢为巢 $2$,输出 $1$。
- 第 $4$ 个查询:将鸽子 $3$ 移动到巢 $2$。
- 第 $5$ 个查询:巢 $1,2,3,4$ 中分别有 $0,3,0,1$ 只鸽子。包含多只鸽子的巢为巢 $2$,输出 $1$。
- 第 $6$ 个查询:将鸽子 $3$ 移动到巢 $4$。
- 第 $7$ 个查询:巢 $1,2,3,4$ 中分别有 $0,2,0,2$ 只鸽子。包含多只鸽子的巢为巢 $2$ 和 $4$,输出 $2$。
翻译由 DeepSeek R1 完成