题目背景

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

题目描述

规定: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行,每行一个’Yes’或’No’。表示第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

并查集。。

//Writer:GhostCai && His Yellow Duck

#include<iostream>
#define MAXN 20000
using namespace std; int m,n,p; int fa[MAXN];
int fnd(int x){
return fa[x]==x?x:fa[x]=fnd(fa[x]);
}
void cat(int x,int y){
x=fnd(x);y=fnd(y);
if(x!=y) fa[y]=x;
} int main(){
cin>>n>>m>>p;
for(int i=1;i<=n;i++) fa[i]=i;
int x,y;
for(int i=1;i<=m;i++){
cin>>x>>y;
cat(x,y);
}
for(int i=1;i<=p;i++){
cin>>x>>y;
x=fnd(x);y=fnd(y);
if(x==y) cout<<"Yes\n";
else cout<<"No\n";
}
return 0;
}

最新文章

  1. 雅虎Yahoo 前段优化 14条军规
  2. The Suspects 简单的并查集
  3. 异步编程之Generator(1)——领略魅力
  4. EasyGUI的安装
  5. 怎么保存退出vi编辑
  6. DHCP Relay 简介
  7. 2020: [Usaco2010 Jan]Buying Feed, II
  8. .net 做工作流时,生成项目后工具箱里有关工作流的东西不显示解决方法
  9. Go基础篇【第5篇】: 内置库模块 exec
  10. models中的pk主键用法
  11. 几道数位DP
  12. WPF如何得到一个在用户控件内部的元素的坐标位置
  13. APP 技术支持
  14. pyhive 连接 Hive 时错误
  15. New Journey Prepare
  16. 数据库构架设计中的Shared Everthting、Shared Nothing、和Shared Disk
  17. 如何免费的将本地Web服务映射到外网
  18. MVC model验证 获取验证错误信息
  19. 前端学习 -- Html&amp;Css -- 条件Hack 和属性Hack
  20. [学习笔记]JS 数组Array push相关问题

热门文章

  1. 用BeautifulSoup简单爬取BOSS直聘网岗位
  2. 笔记-JavaWeb学习之旅9
  3. PostgreSQL-3-DDL数据定义语言
  4. ZROI 部分题目题解
  5. 洛谷 P1067 多项式输出
  6. SQL SERVER 2008中使用VARBINARY(MAX)进行图像存取的实现方法
  7. systemback-----做你折腾的后盾
  8. 关于React的赋值与调用方法
  9. scrapy安装遇到的Twisted问题
  10. 学习python报错处理