hdu 1213

来源:互联网 发布:淘宝双11充值红包退款 编辑:程序博客网 时间:2024/05/18 03:21

题目

与上一题一模一样

代码如下:

#include<iostream>#include<cstdio>using namespace std;int pre[1005];int find(int x){    int r=x;    while(pre[r]!=r) r=pre[r];    return r;}void Union(int x,int y){    int fx=find(x);    int fy=find(y);    if(fx!=fy) pre[fx]=fy;}void Init(){    for(int i=1;i<=1000;i++)      pre[i]=i;}int main(){    int T,i,n,m,a,b,ans;    cin>>T;    while(T--){    while(~scanf("%d",&n)){        Init();        scanf("%d",&m);        ans=n;        for(i=0;i<m;i++){            scanf("%d%d",&a,&b);            if(find(a)!=find(b)){                Union(a,b);                ans--;            }        }        cout<<ans<<endl;    }    }    return 0;}


原创粉丝点击