首页 > 其他 > 详细

hdu--1231--并查集<连分量的个数>

时间:2014-08-13 00:50:14      阅读:355      评论:0      收藏:0      [点我收藏+]

我觉得 这题 是纯粹的 并查集 可以算成 入门题吧

问你有几章桌子 就是问你有几个 连通块嘛 一个道理

    touch  me

这题 我采用了下 father[x]开始 初始化为-1

bubuko.com,布布扣
 1 #include <iostream>
 2 #include <cstring>
 3 using namespace std;
 4 
 5 const int size = 1010;
 6 int father[size];
 7 
 8 int find( int x )
 9 {
10     return father[x] == -1 ? x : father[x] = find( father[x] );
11 }
12 
13 void Union( int x , int y )
14 {
15     x = find(x);
16     y = find(y);
17     if( x!=y )
18     {
19         father[x] = y;
20     }
21 }
22 
23 int main()
24 {
25     int t , n , m , cnt , x , y;
26     cin >> t;
27     while( t-- )
28     {
29         cnt = 0;
30         cin >> n >> m;
31         memset( father , -1 , sizeof(father) );
32         while( m-- )
33         {
34             cin >> x >> y;
35             Union( x, y );
36         }
37         for( int i = 1 ; i<=n ; i++ )
38         {
39             if( father[i] == -1 )
40             {
41                 cnt ++;
42             }
43         }
44         cout << cnt << endl;
45     }
46     return 0;
47 }
View Code

 

hdu--1231--并查集<连分量的个数>,布布扣,bubuko.com

hdu--1231--并查集<连分量的个数>

原文:http://www.cnblogs.com/radical/p/3908688.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!