分析:
用parent属组保存双亲,然后判断。
#include<stdio.h>
int n,m,p;
int fa[5010];
int find(int x)
{
if(fa[x]==x){ return x;}
else{fa[x]=find(fa[x]);return fa[x];}
}
void unionn(int x,int y)
{
int x_fa=find(x);
int y_fa=find(y);
fa[x_fa]=y_fa;
}
main()
{
scanf("%d%d%d",&n,&m,&p);
for(int i=1;i<=n;i++)
{
fa[i]=i;
}
int x,y;
for(int i=0;i<m;i++)
{
scanf("%d%d",&x,&y);
unionn(x,y);
}
// for(int i=1;i<=n;i++)
// {
// printf("%d ",fa[i]);
// }
// printf("\n");
for(int i=0;i<p;i++)
{
scanf("%d%d",&x,&y);
if(find(x)==find(y)) printf("Yes\n");
else printf("No\n");
}
}