码迷,mamicode.com
首页 > 其他好文 > 详细

判断图的连通性

时间:2018-03-09 17:57:50      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:space   bit   namespace   void   连通性   clu   div   查找   blog   

并查集写法:

#include<bits/stdc++.h>
using namespace std;
const int M = 2e5+10;
int f[M];
int find(int x){
    return x == f[x]?x:(f[x]==find(f[x]));  //递归查找集合的代码
}

void mix(int x,int y){
    int fx = find(x);
    int fy = find(y);
    if(fx != fy)
       f[fx] = fy;
}

int main()
{
    int n,m,x,y;
    cin>>n>>m;
    for(int i = 1;i <= n;i ++)
        f[i] = i;
    for(int i = 0;i < m;i ++){
        cin>>x>>y;
        mix(x,y);
    }
    int ans = 0;
    for(int i = 1;i <= n;i ++){
        if(i == f[i])
            ans++;
    }
    if(ans==1)
        cout<<"yes"<<endl;
    else
        cout<<"no"<<endl;
    return 0;
}

 

判断图的连通性

标签:space   bit   namespace   void   连通性   clu   div   查找   blog   

原文地址:https://www.cnblogs.com/kls123/p/8534655.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!