记录编号 333471 评测结果 AAAAAAAAAAAA
题目名称 亲戚 最终得分 100
用户昵称 GravatarZwoi_只会打表抄代码的蒟蒻 是否通过 通过
代码语言 C 运行时间 0.230 s
提交时间 2016-10-30 20:02:25 内存使用 0.37 MiB
显示代码纯文本
#include <stdio.h>
int q,i,m,n,k,x,y,t[20010],x1,y1;
int find(int x)
{
	int r,i,j;
	r=i=x;
	while(t[r]!=r)
		r=t[r];
	while(t[i]!=r)
	{
		j=t[i];
		t[i]=r;
		i=j;
	}
	return r;
}
void mix(int x,int y)
{
	int fx,fy;
	fx=find(x);
	fy=find(y);
	if(fx!=fy)
		t[fx]=fy;
}
int main()
{
	freopen("relations.in","r",stdin);
	freopen("relations.out","w",stdout);
	scanf("%d%d",&n,&m);
	for(i=1;i<=n;i++)
		t[i]=i;
	for(i=1;i<=m;i++)
	{
		scanf("%d%d",&x,&y);
		mix(x,y);
	}
	scanf("%d",&k);
	for(i=1;i<=k;i++)
	{
		scanf("%d%d",&x,&y);
		if(find(x)==find(y))
			printf("Yes\n");
		else printf("No\n");
	}
	return 0;
}