hdu1232

来源:互联网 发布:unity3d打不开 编辑:程序博客网 时间:2024/05/18 02:02
#include <iostream>using namespace std;int father[1005];int find_fa(int x){    if(father[x] != x) father[x] = find_fa(father[x]);//查找 路径压缩;        return father[x];}int main(){    int n, m;    while(cin >> n && n)    {        for(int i = 1; i <= n; i++)//chushihua            father[i] = i;        cin >> m;        int u, v;        for(int i = 0; i < m; i++)        {            cin >> u >> v;            u = find_fa(u);            v = find_fa(v);            if(u != v)                father[u] = v;//合并;        }        int tot = 0;        for(int i = 1; i <= n; i++)//每个集合只有一个最高父亲,即是本身;            if(father[i] == i)            tot++;        cout << tot-1 << endl;//最后要减一。    }}

原创粉丝点击