并查集模版题。
理解了就很容易明白并查集的路径压缩。
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
int a[5001];
int fa(int x)
{
if(x!=a[x])a[x]=fa(a[x]);
return a[x];
}
int main()
{
int n,m,p;
while(~scanf("%d%d%d",&n,&m,&p))
{
int x,y;
for(int i=1;i<=n;i++)
a[i]=i;
for(int i=0;i<m;i++)
{
scanf("%d%d",&x,&y);
int fx,fy;
fx=fa(x),fy=fa(y);
a[fx]=fy;
}
for(int i=0;i<p;i++)
{
scanf("%d%d",&x,&y);
if(fa(x)==fa(y))puts("Yes");
else puts("No");
}
}
}