首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

杭电 hdu 1213 How Many Tables (并查集,简略题)

2012-10-06 
杭电 hdu 1213 How Many Tables (并查集,简单题)/* THE PROGRAM IS MADE BY PYY *//*--------------------

杭电 hdu 1213 How Many Tables (并查集,简单题)

/* THE PROGRAM IS MADE BY PYY *//*----------------------------------------//    Copyright (c) 2011 panyanyany All rights reserved.    URL   : http://acm.hdu.edu.cn/showproblem.php?pid=1213    Name  : 1213 How Many Tables    Date  : Sunday, September 04, 2011    Time Stage : half an hour    Result: 45414342011-09-04 14:28:07Accepted12130MS192K1230 BC++pyyTest Data :Review :很裸的并查集……水题//----------------------------------------*/#include <stdio.h>#include <string.h>#define max(a, b) ((a) > (b) ? (a) : (b))#define min(a, b) ((a) < (b) ? (a) : (b))#define MAXSIZE (1009)int tcase, n, m ;int ufSet[MAXSIZE] ;int find (int x){if (x != ufSet[x])ufSet[x] = find (ufSet[x]) ;return ufSet[x] ;}void merge (int pa, int pb){ufSet[pb] = pa ;}int main (){int i, j ;int a, b, pa, pb ;int cnt ;while (scanf ("%d", &tcase) != EOF){while (tcase--){for (i = 1 ; i < MAXSIZE ; ++i)ufSet[i] = i ;scanf ("%d%d", &n, &m) ;for (i = 1 ; i <= m ; ++i){scanf ("%d%d", &a, &b) ;pa = find (a) ;pb = find (b) ;if (pa != pb)merge (pa, pb) ;}cnt = 0 ;for (i = 1 ; i <= n ; ++i)if (find (i) == i)++cnt ;printf ("%d\n", cnt) ;}}return 0 ;}

热点排行