题目:http://www.luogu.org/problem/show?pid=1551#
分析:最基础的并查集,模板
洛谷P1551 亲戚 - jerry99 - jerry99的博客
洛谷P1551 亲戚 - jerry99 - jerry99的博客
代码:
#include <cstdio>
#include <algorithm>
using namespace std;
const int Tmax=5005;
int n,m,q,p[Tmax];
int find(int x)
{
return p[x]==x?x:p[x]=find(p[x]);
}
void work()
{
int i,a,b;
for(i=1;i<=q;i++)
{
scanf("%d %d",&a,&b);
if(find(a)==find(b)) printf("Yes\n");
else printf("No\n");
}
return;
}
void init()
{
int i,a,b;
for(i=1;i<=n;i++) p[i]=i;
for(i=1;i<=m;i++)
{
scanf("%d %d",&a,&b);
p[find(a)]=find(b);
}
return;
}
int main()
{
scanf("%d %d %d",&n,&m,&q);
init();
work();
return 0;
}