#P0211. C. 连接(connect)
C. 连接(connect)
题目描述
在二维平面上有一个初始为 个顶点、 条边的图 。顶点编号为 到 ,顶点 的坐标为 。
对于图 中的顶点 和 ,定义它们之间的距离 为曼哈顿距离:。
对于图 的两个连通分量 和 ,设它们的顶点集合分别为 和 ,则定义 和 之间的距离 为:$d(A,B)=\min\lbrace d(u,v) \mid u \in V(A), v \in V(B) \rbrace$。
请处理以下 个查询,查询分为三种类型:
1 a b:设当前图 的顶点数为 ,在坐标 处新增顶点 ,并将其加入图 。2:设当前图 的顶点数为 ,连通分量数为 :- 若 ,输出
-1。 - 若 ,找到距离最小的连通分量对,并将它们合并(即在这些连通分量之间添加边,使得所有距离等于最小值的顶点对相连),然后输出该最小距离值。
- 若 ,输出
3 u v:若顶点 和 属于同一连通分量,输出Yes;否则输出No。
输入格式
输入通过标准输入给出,格式如下:
每个查询为以下三种形式之一:
输出格式
按照题目要求输出每个查询的结果,每个结果占一行。
输入输出样例 #1
输入 #1
4 11
3 4
3 3
7 3
2 2
3 1 2
2
3 1 2
1 6 4
2
3 2 5
2
3 2 5
2
1 2 2
2
输出 #1
No
1
Yes
2
No
3
Yes
-1
0
说明/提示
约束条件
- 对于类型
1的查询, - 对于类型
3的查询,设处理该查询前图 的顶点数为 ,则 - 输入均为整数
样例解释 1
初始时,顶点 的坐标分别为 。
- 第 1 个查询:顶点 和 不连通,输出
No。 - 第 2 个查询:有 4 个连通分量($\lbrace 1 \rbrace, \lbrace 2 \rbrace, \lbrace 3 \rbrace, \lbrace 4 \rbrace$),最小距离为 (顶点 和 之间),合并后输出 。
- 第 3 个查询:顶点 和 已连通,输出
Yes。 - 第 4 个查询:新增顶点 ,坐标为 。
- 第 5 个查询:最小距离为 (顶点 和 、顶点 和 之间),合并后输出 。
- 第 6 个查询:顶点 和 不连通,输出
No。 - 第 7 个查询:最小距离为 (顶点 和 之间),合并后输出 。
- 第 8 个查询:顶点 和 已连通,输出
Yes。 - 第 9 个查询:所有顶点连通,输出
-1。 - 第 10 个查询:新增顶点 ,坐标为 。
- 第 11 个查询:最小距离为 (顶点 和 之间),合并后输出 。
相关
在下列比赛中: