AT_arc141_e [ARC141E] Sliding Edge on Torus
题目描述
有一个包含 $N^2$ 个顶点的无向图。初始时,图中没有任何边。对于每一组满足 $0 \leq i, j < N$ 的整数对 $(i, j)$,都有一个对应的顶点,记作 $(i, j)$。
给定 $Q$ 个查询。对于第 $i$ 个查询,给出四个整数 $a_i, b_i, c_i, d_i$,请按以下方式依次处理每个查询:
- 对于每个 $k\ (0 \leq k < N)$,在两个顶点 $((a_i + k) \bmod N, (b_i + k) \bmod N)$ 和 $((c_i + k) \bmod N, (d_i + k) \bmod N)$ 之间添加一条边。之后,输出当前图的连通分量数。
输入格式
输入通过标准输入给出,格式如下:
> $N$ $Q$ $a_1$ $b_1$ $c_1$ $d_1$ $a_2$ $b_2$ $c_2$ $d_2$ $\vdots$ $a_Q$ $b_Q$ $c_Q$ $d_Q$
输出格式
输出共 $Q$ 行。第 $i$ 行输出第 $i$ 个查询后图的连通分量数。
说明/提示
### 限制条件
- $2 \leq N \leq 2 \times 10^5$
- $1 \leq Q \leq 2 \times 10^5$
- $0 \leq a_i, b_i, c_i, d_i < N$
- $(a_i, b_i) \neq (c_i, d_i)$
- 所有输入值均为整数
### 样例解释 1
对于第 $1$ 个查询,会在顶点 $(0, 0)$ 与 $(1, 2)$、$(1, 1)$ 与 $(2, 0)$、$(2, 2)$ 与 $(0, 1)$ 之间分别添加一条边。这样连通分量数会从 $9$ 变为 $6$。
### 样例解释 2
经过查询处理后,图可能不再是简单图。
由 ChatGPT 4.1 翻译