#ATarc141e. [ARC141E] Sliding Edge on Torus

[ARC141E] Sliding Edge on Torus

题目描述

有一个包含 N2N^2 个顶点的无向图。初始时,图中没有任何边。对于每一组满足 0i,j<N0 \leq i, j < N 的整数对 (i,j)(i, j),都有一个对应的顶点,记作 (i,j)(i, j)

给定 QQ 个查询。对于第 ii 个查询,给出四个整数 ai,bi,ci,dia_i, b_i, c_i, d_i,请按以下方式依次处理每个查询:

  • 对于每个 k (0k<N)k\ (0 \leq k < N),在两个顶点 ((ai+k)modN,(bi+k)modN)((a_i + k) \bmod N, (b_i + k) \bmod N)((ci+k)modN,(di+k)modN)((c_i + k) \bmod N, (d_i + k) \bmod N) 之间添加一条边。之后,输出当前图的连通分量数。

输入格式

输入通过标准输入给出,格式如下:

NN QQ a1a_1 b1b_1 c1c_1 d1d_1 a2a_2 b2b_2 c2c_2 d2d_2 \vdots aQa_Q bQb_Q cQc_Q dQd_Q

输出格式

输出共 QQ 行。第 ii 行输出第 ii 个查询后图的连通分量数。

样例 1

输入

3 3
0 0 1 2
2 0 0 0
1 1 2 2

输出

6
4
4

样例 2

输入

4 3
0 0 2 2
2 3 1 2
1 1 3 3

输出

14
11
11

样例 3

输入

6 5
0 0 1 1
1 2 3 4
1 1 5 3
2 0 1 5
5 0 3 3

输出

31
27
21
21
19

说明/提示

限制条件

  • 2N2×1052 \leq N \leq 2 \times 10^5
  • 1Q2×1051 \leq Q \leq 2 \times 10^5
  • 0ai,bi,ci,di<N0 \leq a_i, b_i, c_i, d_i < N
  • (ai,bi)(ci,di)(a_i, b_i) \neq (c_i, d_i)
  • 所有输入值均为整数

样例解释 1

对于第 11 个查询,会在顶点 (0,0)(0, 0)(1,2)(1, 2)(1,1)(1, 1)(2,0)(2, 0)(2,2)(2, 2)(0,1)(0, 1) 之间分别添加一条边。这样连通分量数会从 99 变为 66

样例解释 2

经过查询处理后,图可能不再是简单图。

由 ChatGPT 4.1 翻译