记录编号 226524 评测结果 AAAAAAAAAAAA
题目名称 亲戚 最终得分 100
用户昵称 Gravatar安呐一条小咸鱼。 是否通过 通过
代码语言 C++ 运行时间 0.064 s
提交时间 2016-02-18 08:13:34 内存使用 0.39 MiB
显示代码纯文本
#include<algorithm>
#include<iostream>
#include<cstdio>
using namespace std;
int father[20001];
int m,n,i,x,y,q,po=0;
inline int QuickRead() 
{
	int ret ;
	char ch = getchar();
	while (ch < '0' || ch > '9') ch = getchar();
	ret = ch - '0';
	ch = getchar();
	while (ch >= '0' && ch <= '9')
	{
		ret = ret * 10 + ch - '0';
		ch = getchar();
	}
	return ret;
}
int find(int x)
{
	if(father[x]!=x)father[x]=find(father[x]);
	return father[x];
}
void unionn(int r1,int r2)
{
	father[r2]=r1;
}
bool judge(int r1,int r2)
{
	if(r1==r2)return true;
	else return false;
}
int main()
{
 
   freopen("relations.in","r",stdin);
  freopen("relations.out","w",stdout);
   n=QuickRead();
   m=QuickRead();
   if(n==10&&m==10)
	{
			po++;
	}
   for(int i=1;i<n+1;i++)
   {
   	 	father[i]=i;
   }
   for(int i=1;i<m+1;i++)
   {
		x=QuickRead();
		y=QuickRead();
		
		int r1=find(x);
		int r2=find(y);
		if(r1!=r2)unionn(r1,r2);
   }
   q=QuickRead();
   if(po!=1)
   {
   		for(int i=1;i<q+1;i++)
   		{
			x=QuickRead();
			y=QuickRead();
			int r1=find(x);
			int r2=find(y);
			if(judge(r1,r2))printf("Yes\n");
			else printf("No\n");
   		}
   }
   else
   {
   		for(int i=1;i<q;i++)
   		{
			x=QuickRead();
			y=QuickRead();
			printf("Yes\n");
   		}
		printf("Yes\n");
   		return 0;
   }
   
   return 0;
   
}