水果~
#include <cstdio>
#define N 5002
using namespace std;
int n = 0, m = 0, p = 0, father[N], rank[N];
int find(int x)
{
if(father[x] != x)
father[x] = find(father[x]);
return father[x];
}
void Union(int x, int y)
{
int fx = 0, fy = 0;
fx = find(x);
fy = find(y);
if(fx == fy) return ;
if(rank[fx]<rank[fy])
{
father[fx] = fy;
}
else
{
if(rank[fx] == rank[fy])
rank[fx]++;
father[fy] = fx;
}
}
int main()
{
int i = 0, x = 0, y = 0;
scanf("%d %d %d", &n, &m, &p);
for(i = 1; i<=n; i++)
{
rank[i] = 0;
father[i] = i;
}
while(m--)
{
scanf("%d %d", &x, &y);
Union(x, y);
}
while(p--)
{
scanf("%d %d", &x, &y);
x = find(x);
y = find(y);
if(x == y) printf("Yes\n");
else printf("No\n");
}
return 0;
}