hdoj1213

来源:互联网 发布:网页设计软件html 编辑:程序博客网 时间:2024/05/29 03:17

一道简单的并查集题目hdoj1212

#include<iostream>using namespace std;int T,N,M;int father[2000];void initial(int n){         //初始化数组    for(int i=1;i<=n;i++)        father[i] = i;}int find(int x){    //查找函数    if(father[x] == x) return x;    return father[x] = find(father[x]);}void UNION(int x,int y){    //合并    int fx = find(x);    int fy = find(y);    if(fx!=fy){        N--;        father[fy] = fx;    }}int main(){    int i,a,b;    cin>>T;    while(T--){        cin>>N>>M;        initial(N);        for(i=0;i<M;i++){            cin>>a>>b;            UNION(a,b);        }        cout<<N<<endl;    }    return 0;}
原创粉丝点击