比赛 图论练习和一些常规题 评测结果 AAAAAAAAAAAA
题目名称 亲戚 最终得分 100
用户昵称 Apocana-Wisbtsml 运行时间 0.420 s
代码语言 C++ 内存使用 0.97 MiB
提交时间 2018-06-04 19:13:45
显示代码纯文本
#include<iostream>
#include<cstdio>
using namespace std;
#define maxn 20001
int father[maxn];
int n,m,i,q,c,d; 
int find(int x)
{
	if(father[x]==x) return x;
	father[x]=find(father[x]);
	return father[x];
}
void unionn(int x,int y)
{   int a,b;
	a=find(x);b=find(y);
	father[b]=a;
}
int main()
{   freopen("relations.in","r",stdin);
	freopen("relations.out","w",stdout);
	cin>>n>>m;
	for(i=1;i<=n;i++)
	father[i]=i;
	for(i=1;i<=m;i++)
	{
	    scanf("%d%d",&c,&d);
		unionn(c,d);
	}
	cin>>q;
	for(i=1;i<=q;i++)
	{
		scanf("%d%d",&c,&d);if(find(c)==find(d)) cout<<"Yes"<<endl;
	    else cout<<"No"<<endl;
	}
	
	
	return 0;
}