HDU 1232 畅通工程

来源:互联网 发布:php老虎机源码 编辑:程序博客网 时间:2024/06/06 04:42

点击打开题目链接

#include <bits/stdc++.h>using namespace std;int pre[1010];int Find(int x);int join(int x, int y);int main(){    int n, m;    while(cin >> n, n)    {        for(int i = 1; i <= n; i++)        {            pre[i] = i;        }        cin >> m;        for(int i = 1; i <= m; i++)        {            int x, y;            cin >> x >> y;            join(x, y);        }        int num = 0;        for(int i = 1; i <= n; i++)        {            if(pre[i] == i)            {                ++num;            }        }        cout << num-1 << endl;    }    return 0;}int Find(int x){    int r = x;    while(pre[r] != r)        r = pre[r];    int i = x, j;    while(i != r)    {        j = pre[i];        pre[i] = r;        i = j;    }   return r;}int join(int x, int y){    int fx = Find(x), fy = Find(y);    if(fx != fy)    {        pre[fx] = fy;    }}


0 0
原创粉丝点击