首页 > 代码库 > hdu_1213
hdu_1213
在算法上松懈了好久,决心开始慢慢捡起来了。一开始先跟初学一样吧。基础一点,也能发现以前自己的问题。
1 #include<iostream> 2 #include<cstdio> 3 #define MAXN 1111 4 int TestCase = 0; 5 int N,M; 6 int tr[MAXN]; 7 int tr_find(int x) 8 { 9 while(tr[x] != x)10 x = tr[x];11 return x;12 }13 void tr_merge(int a,int b)14 {15 int ra = tr_find(a);16 int rb = tr_find(b);17 if(ra!=rb)18 tr[ra] = rb;19 return;20 }21 int main()22 {23 // freopen("in.txt","r",stdin);24 scanf("%d",&TestCase);25 while(TestCase --) {26 scanf("%d%d",&N,&M);27 for(int i = 1; i <= N; i++)28 tr[i] = i;29 while(M--) {30 int a,b;31 scanf("%d%d",&a,&b);32 tr_merge(a,b);33 }34 int s = 0;35 for(int i = 1; i <= N; i++)36 // std::cout<<" "<<tr[i];37 if(tr[i] == i)38 ++s;39 printf("%d\n",s);40 }41 }
hdu_1213
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。