#df1921. 是不是亲戚

是不是亲戚

是不是亲戚

题目描述

若某个家族人员过于庞大,要判断两个是否是亲戚,确实还很不容易,现在给出某个亲戚关系图,求任意给出的两个人是否具有亲戚关系。

规定:x 和 y 是亲戚,y 和 z 是亲戚,那么 x 和 z 也是亲戚。如果 x,y 是亲戚,那么 x 的亲戚都是 y 的亲戚,y 的亲戚也都是 x 的亲戚。

输入格式

第一行:三个整数 n,m,p,(n≤5000,m≤5000,p≤5000 ),分别表示有 n 个人,m 个亲戚关系,询问 p 对亲戚关系。

以下 m 行:每行两个数 Mi,Mj,1≤Mi,Mj≤N,表示 Mi 和 Mj 具有亲戚关系。

接下来 p 行:每行两个数 Pi,Pj,询问 Pi 和 Pj 是否具有亲戚关系。

输出格式

p 行,每行一个 YesNo。表示第 i 个询问的答案为“具有”或“不具有”亲戚关系。

样例输入 #1

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

样例输出 #1

Yes
Yes
No

数据范围

n≤5000,m≤5000,p≤5000,1≤Mi,Mj≤N,1≤Pi,Pj≤N。

知识点与难度

本题涉及的知识点从属于 并查集,难度等级:⭐(入门)


测试点分布

Subtask 分值 测试点编号 说明
0 10 1~2 样例 / 构造小样例
1 20 3~8 小规模 N≤10 / 特殊: 链 / 特殊: 全连通 / 特殊: 不连通
2 15 9~11 Hack: N=1边界 / Hack: 自环 / Hack: 最大规模询问
3 30 12~20 中规模 N≈1000~5000 / 大规模 N=5000 压力
4 25 21~25 随机 N=1~5000 回归