Tobe 2014-07-13 19:34:43
点我顶贴
收藏
删除
#include<cstdio>
int n, m, p;
int father[6000];
int Find(int n) {
if (father[n] == n) return n;
father[n] = Find(father[n]);
return father[n];
}
void Union(int a, int b) {
int fa = Find(a), fb = Find(b);
father[fb] = fa;
}
int main() {
scanf("%d%d%d", &n, &m, &p);
int a, b;
for (int i = 1; i <= n; i++) father[i] = i;
for (int i = 1; i <= m; i++) {
scanf("%d%d", &a, &b);
Union(a, b);
}
for (int i = 1; i <= p; i++) {
scanf("%d%d", &a, &b);
if (Find(a)==Find(b)) printf("Yes\n");
else printf("No\n");
}
return 0;
}