HDU1213

http://acm.split.hdu.edu.cn/showproblem.php?pid=1213

 1 #include<stdio.h>
 2 #include<algorithm>
 3 #include<iostream>
 4 #include<string.h>
 5 using namespace std;
 6 const int maxn=1005;
 7 int fa[maxn];
 8 int fin(int x)
 9 {
10     return fa[x]==x?fa[x]:fa[x]=fin(fa[x]);
11 }
12 int unin(int x,int y){
13 return fa[fin(y)]=fin(x);
14 }
15 int main()
16 {
17     int t,a,b;
18     int m,n;
19     cin>>t;
20     while(t--){
21      cin>>m>>n;
22      for(int i=1;i<=m;i++){
23         fa[i]=i;
24      }
25      for(int i=0;i<n;i++){
26         scanf("%d%d",&a,&b);
27         if(fin(a)!=fin(b)){
28             unin(a,b);
29         }
30      }
31 
32      int temp=0;
33      for(int i=1;i<=m;i++){
34         if(fa[i]==i){
35             temp++;
36         }
37      }
38      cout<<temp<<endl;
39 getchar();
40     }
41 }
View Code
你若盛开,清风自来...
原文地址:https://www.cnblogs.com/shangjindexiaoqingnian/p/5823535.html