天天看點

wikioi p1073 家族

叫親戚的話,大家都應該知道了吧~

#include<stdio.h>
#include<iostream>
using namespace std;
const int MAX_N = 5001;
int R[MAX_N];
int N,M,P;
int findroot(int t)
{
    if (!R[t]) return t;
    else return R[t]=findroot(R[t]);
}
int init()
{
    int i;
    scanf("%d %d %d",&N,&M,&P);
    int x,y;
    int a,b;
    for (i=1;i<=M;i++)
    {
        scanf("%d %d",&x,&y);
        a=findroot(x);
        b=findroot(y);
        if (a!=b) R[a]=b;
    }
}
int work_put()
{
    int i;
    int x,y;
    int a,b;
    for (i=1;i<=P;i++)
    {
        scanf("%d %d",&x,&y);
        a=findroot(x);
        b=findroot(y);
        if (a==b) printf("Yes\n");
        else printf("No\n");
    }
}
int main()
{
	init();
	work_put();
	return 0;
}