#824. 👪 A2《谁和谁是一家人》
👪 A2《谁和谁是一家人》
👪 A2《谁和谁是一家人》🔗
在 兔猫信奥学院,小兔和小猫正在帮加菲老师整理一张“亲戚关系网”。 有些亲戚关系是已知的,比如:
Marry和Tom是亲戚Tom和Ben是亲戚
那么我们就可以推出:Marry 和 Ben 也是亲戚。
为了简化问题,我们把所有人用编号表示:。 如果两个人之间通过若干条“亲戚关系”能够连起来,那么他们就属于同一个家族,也就互相是亲戚。
你的任务是:根据给定的已知亲戚关系,快速回答大量询问。
📌 亲戚关系定义
- 若已知 和 是亲戚,则他们属于同一家族。
- 若 和 是亲戚, 和 是亲戚,则 和 也是亲戚。
- 更一般地,只要两人位于同一个连通的关系网中,就视为亲戚。
🖼️ 样例关系图(由样例数据绘制)
样例已知关系( 条):
可以画成如下“家族连通块”示意(仅用于理解):
家族 A: 4
|
1 —— 2 —— 3
家族 B: 7
|
5 —— 6
家族 C: 8 —— 9
家族 D: 10(孤立)
输入格式
输入分为两部分。
第一部分:已知亲戚关系
第一行两个整数 :
- 表示人数(编号 )
- 表示已知亲戚关系条数
接下来 行,每行两个整数 ,表示 与 是亲戚。
第二部分:询问
接下来一行一个整数 ,表示询问数量。 随后 行,每行两个整数 ,询问 和 是否为亲戚。
注意:编号 1..n 的人都存在,即使某个人没出现在任何关系中,也可能在询问里出现,此时他独自成为一个家族
输出格式
对每个询问输出一行:
- 若两人是亲戚输出
Yes - 否则输出
No
10 7
2 4
5 7
1 3
8 9
1 2
5 6
2 3
3
3 4
7 10
8 9
Yes
No
Yes
数据范围
(提示:询问数量巨大,需要非常高效的做法。)