#include<iostream>
#include <cstring>
#include <vector>
#include <set>
在一个数据中心里,有 n 台服务器,编号从 1 到 n。服务器之间通过若干光纤连接,每条光纤直接连接两台服务器,数据可以通过多条光纤进行中转传输。初始时,管理员记录了 m 条正在工作的光纤。
随着时间的推移,一些光纤可能会被移除;同时管理员也需要随时检查两台服务器之间能否通过现有的光纤通路互相通信。你需要依次处理 q 个事件,每种事件的格式如下:
请你按顺序回答所有类型 2 的查询。
数据规模约定:
第一行包含三个整数 n,m,q,含义如上所述。
接下来的 m 行,每行包含两个整数 u,v,表示初始时服务器 u 和 v 之间存在一条光纤。
接下来的 q 行,每行包含三个整数 op,u,v,其中 op 为事件类型(1 表示移除光纤,2 表示查询连通性),u 和 v 为服务器编号。
对于每个类型为 2 的事件,按事件在输入中出现的顺序,输出一行字符串:如果查询时服务器 u 和 v 能够通过一系列光纤互相通信,则输出 Yes,否则输出 No。
输入
4 2 3
1 2
2 3
2 1 3
1 2 3
2 1 3
输出
Yes
No
说明
初始有光纤连接 1-2 和 2-3,因此服务器 1 和 3 可以通过 2 连通,第一次查询输出 Yes。随后移除了 2-3 之间的光纤,1 与 3 不再连通,第二次查询输出 No。
输入
3 0 2
2 1 2
2 2 3
输出
No
No
说明
没有初始光纤,所有服务器均孤立。查询 1 和 2 无法通信,输出 No;查询 2 和 3 也无法通信,输出 No。
输入
5 4 4
1 2
2 3
3 4
4 5
2 1 5
1 3 4
2 1 5
2 2 4
输出
Yes
No
No
说明
初始光纤构成一条链 1—2—3—4—5,所有服务器连通。第一个查询 1 和 5 可通信,输出 Yes。
之后移除 3-4 光纤,服务器被分为两个连通块:{1,2,3} 和 {4,5}。此时查询 1 和 5 不再连通,输出 No;查询 2 和 4 也不连通,输出 No。
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.