354118677 2012-02-11 08:43:00
点我顶贴
收藏
删除
#include <stdio.h>
#include <stdlib.h>
int father[5001];
int find_father(int x)
{
if(father[x]!=x) father[x]=find_father(father[x]);
else return father[x];
}
void merge(int x,int y)
{
x=find_father(x);
y=find_father(y);
if(x!=y) father[y]=x;
else return;
}
int main(int argc, char *argv[])
{
int n,m,p,i,mi,mj,pi,pj;
scanf("%d%d%d",&n,&m,&p);
for(i=1;i<=n;i++)
father[i]=i;
for(i=0;i<m;i++)
{
scanf("%d%d",&mi,&mj);
merge(mi,mj);
}
for(i=0;i<p;i++)
{
scanf("%d%d",&pi,&pj);
if(find_father(pi)==find_father(pj)) printf("Yes\n");
else printf("No\n");
}
system("PAUSE");
return 0;
}