1. 程式人生 > >【演算法模板】並查集

【演算法模板】並查集

模板題:親戚

#include<iostream>

using namespace std;

int n,m,p;
int f[5001];

int find(int x)
{
    if(f[x]==x)return x;
    elsereturn find(f[x]);
}

int main()
{
    cin>>n>>m>>p;
    for(int i=1;i<=n;i++)f[i]=i;
    for(int i=1;i<=m;i++)
    {
        int x,y;
        cin>>x>>y;
        int fx=find(x);
        int fy=find(y);
        if(fx!=fy)f[fx]=fy;
    }
    for(int i=1;i<=p;i++)
    {
        int x,y;
        cin>>x>>y;
        if(find(x)==find(y))cout<<"Yes"<<endl;
        else cout<<"No"<<endl;
    }
    return 0;
}