标签:
Time Limit: 5000MS | Memory Limit: 65536K | |
Total Submissions: 32294 | Accepted: 15652 |
Description
Input
Output
Sample Input
10 9
1 2
1 3
1 4
1 5
1 6
1 7
1 8
1 9
1 10
10 4
2 3
4 5
4 8
5 8
0 0
Sample Output
Case 1: 1
Case 2: 7
Hint
Source
1 #include<iostream> 2 #include<cstring> 3 #include<cstdio> 4 using namespace std; 5 const int maxn=50005; 6 int t,n,m,ans,f[maxn],cnt[maxn]; 7 int fnd(int x) 8 { 9 if(f[x]!=x) 10 f[x]=fnd(f[x]); 11 return f[x]; 12 } 13 int main() 14 { 15 while(scanf("%d%d",&n,&m)&&(n||m)) 16 { 17 ans=n; 18 for(int i=1;i<=n;i++) 19 f[i]=i; 20 int x,y; 21 while(m--) 22 { 23 scanf("%d%d",&x,&y); 24 if(fnd(x)!=fnd(y)) 25 { 26 f[fnd(y)]=fnd(x); 27 ans--; 28 } 29 } 30 printf("Case %d: %d\n",++t,ans); 31 } 32 return 0; 33 }
标签:
原文地址:http://www.cnblogs.com/SilverNebula/p/5898435.html