比赛 15级练手赛 评测结果 AAAAAAAAAAAA
题目名称 亲戚 最终得分 100
用户昵称 梦那边的美好ET 运行时间 0.536 s
代码语言 C++ 内存使用 3.23 MiB
提交时间 2018-08-02 19:40:32
显示代码纯文本
#include<iostream>  
#include<cstdio>
#include<cmath> 
#include<cstring>  
#include<algorithm>  
using namespace std; 
int n,m,f[20001],q,a,b;
int main(){ 
    freopen("relations.in","r",stdin);        
    freopen("relations.out","w",stdout);      
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++)f[i]=i;
	for(int i=1;i<=m;i++){
		scanf("%d%d",&a,&b);
		if(b<a){
			int k=a;a=b;b=k;
		}
		if(f[b]==b)f[b]=f[a];
		else {
			if(f[a]==a){
				f[a]=f[b];
			}
			else{
			    int p=b;
			    while(f[p]!=p){
				    f[p]=f[a];
			    	p=f[p];
			    }
			    f[p]=f[a];
		    }
		}
	}
	cin>>q;
	for(int i=1;i<=q;i++){
		scanf("%d%d",&a,&b);
		int p=a,j=b;
		while(f[p]!=p)p=f[p];
		while(f[j]!=j)j=f[j];
		if(p==j)printf("Yes");
		else printf("No");
		cout<<endl;
	}
    return 0;  
}