AT_abc409_f [ABC409F] Connecting Points
题目描述
[problemUrl]: https://atcoder.jp/contests/abc409/tasks/abc409_f
在二维平面上有一个初始为 $N$ 个顶点、$0$ 条边的图 $G$。顶点编号为 $1$ 到 $N$,顶点 $i$ 的坐标为 $(x_i,y_i)$。
对于图 $G$ 中的顶点 $u$ 和 $v$,定义它们之间的距离 $d(u,v)$ 为曼哈顿距离:$d(u,v)=|x_u-x_v|+|y_u-y_v|$。
对于图 $G$ 的两个连通分量 $A$ 和 $B$,设它们的顶点集合分别为 $V(A)$ 和 $V(B)$,则定义 $A$ 和 $B$ 之间的距离 $d(A,B)$ 为:$d(A,B)=\min\lbrace d(u,v) \mid u \in V(A), v \in V(B) \rbrace$。
请处理以下 $Q$ 个查询,查询分为三种类型:
1. `1 a b`:设当前图 $G$ 的顶点数为 $n$,在坐标 $(a,b)$ 处新增顶点 $n+1$,并将其加入图 $G$。
2. `2`:设当前图 $G$ 的顶点数为 $n$,连通分量数为 $m$:
- 若 $m=1$,输出 `-1`。
- 若 $m \geq 2$,找到距离最小的连通分量对,并将它们合并(即在这些连通分量之间添加边,使得所有距离等于最小值的顶点对相连),然后输出该最小距离值。
3. `3 u v`:若顶点 $u$ 和 $v$ 属于同一连通分量,输出 `Yes`;否则输出 `No`。
输入格式
输入通过标准输入给出,格式如下:
> $N$ $Q$
> $x_1$ $y_1$
> $x_2$ $y_2$
> $\vdots$
> $x_N$ $y_N$
> $\mathrm{query}_1$
> $\mathrm{query}_2$
> $\vdots$
> $\mathrm{query}_Q$
每个查询为以下三种形式之一:
> $1$ $a$ $b$
> $2$
> $3$ $u$ $v$
输出格式
按照题目要求输出每个查询的结果,每个结果占一行。
说明/提示
### 约束条件
- $2 \leq N \leq 1500$
- $1 \leq Q \leq 1500$
- $0 \leq x_i, y_i \leq 10^9$
- 对于类型 `1` 的查询,$0 \leq a, b \leq 10^9$
- 对于类型 `3` 的查询,设处理该查询前图 $G$ 的顶点数为 $n$,则 $1 \leq u < v \leq n$
- 输入均为整数
### 样例解释 1
初始时,顶点 $1,2,3,4$ 的坐标分别为 $(3,4),(3,3),(7,3),(2,2)$。
- 第 1 个查询:顶点 $1$ 和 $2$ 不连通,输出 `No`。
- 第 2 个查询:有 4 个连通分量($\lbrace 1 \rbrace, \lbrace 2 \rbrace, \lbrace 3 \rbrace, \lbrace 4 \rbrace$),最小距离为 $1$(顶点 $1$ 和 $2$ 之间),合并后输出 $1$。
- 第 3 个查询:顶点 $1$ 和 $2$ 已连通,输出 `Yes`。
- 第 4 个查询:新增顶点 $5$,坐标为 $(6,4)$。
- 第 5 个查询:最小距离为 $2$(顶点 $2$ 和 $4$、顶点 $3$ 和 $5$ 之间),合并后输出 $2$。
- 第 6 个查询:顶点 $2$ 和 $5$ 不连通,输出 `No`。
- 第 7 个查询:最小距离为 $3$(顶点 $1$ 和 $5$ 之间),合并后输出 $3$。
- 第 8 个查询:顶点 $2$ 和 $5$ 已连通,输出 `Yes`。
- 第 9 个查询:所有顶点连通,输出 `-1`。
- 第 10 个查询:新增顶点 $6$,坐标为 $(2,2)$。
- 第 11 个查询:最小距离为 $0$(顶点 $4$ 和 $6$ 之间),合并后输出 $0$。
翻译由 DeepSeek V3 完成