HDU 1232 畅通工程

来源:互联网 发布:小米vr软件 编辑:程序博客网 时间:2024/05/22 03:29

|版权声明:本文为博主原创文章,未经博主允许不得转载。

基础并查集

#include<stdio.h>#include<iostream>#include<algorithm>#include<math.h>#include<string.h>#include<string>using namespace std;int per[1005];int n,m;void init(){    for(int i = 0; i <= n; i ++ )    {        per[i] = i;    }}int find(int x){    if(x != per[x])        per[x] = find(per[x]);    return per[x];}void join(int x,int y){    int s = find(x);    int e = find(y);    if(s != e)        per[s] = e;}int main(){    while(scanf("%d",&n) != EOF &&n)    {        scanf("%d",&m);        init();        int a,b;        for(int i = 0; i < m; i ++)        {            scanf("%d%d",&a,&b);            join(a,b);        }        int c = 0;        for(int i = 1; i <= n; i ++)        {            if(per[i] == i)                c ++;        }        printf("%d\n",c-1);    }    return 0;}
如有错误,欢迎指出 ~

0 0