十五月明


私信TA

用户名:dotcpp0605328

访问量:5432

签 名:

等  级
排  名 319
经  验 5465
参赛次数 0
文章发表 87
年  龄 18
在职情况 学生
学  校 曲阜师范大学
专  业 人工智能

  自我简介:

Easy

解题思路:

注意事项:

参考代码:

#include<bits/stdc++.h>

using namespace std;

const int MAXN = 20010;

int father[MAXN];

int n,m;

void initial(){

    for(int i=1;i<=n;i++){

        father[i]=i;

    }

}

int find(int x){

    if(father[x]!=x){

        x=find(father[x]);

    }

    return father[x];

}

void Union(int a,int b){

    int x=find(father[a]);

    int y=find(father[b]);

    if(x!=y){

        father[x]=y;

    }

}

int main()

{

   //cin>>n>>m;

   scanf("%d%d", &n, &m);

   initial();

   for(int i=1;i<=m;i++){

       int a,b;scanf("%d%d",&a,&b);

       //cin>>a>>b;

       Union(a,b);

   }

   int q; cin>>q;

   for(int i=1;i<=q;i++){

       int b,c; scanf("%d%d",&b,&c);

       //cin>>b>>c;

       if(find(b)==find(c))  printf("Yes\n");//cout<<"Yes"<<endl;

       else printf("No\n");//cout<<"No"<<endl;

   }

   return 0;

}


 

0.0分

1 人评分

  评论区

  • «
  • »