How Many Tables hdu1213 并查集

来源:互联网 发布:手机淘宝推广平台 编辑:程序博客网 时间:2024/05/16 07:33

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

。。。好久没写代码了。= =。 非常简单的并查集。

#include <iostream>using namespace std;#define N 1003int people[N];int findfather(int n){if (n!=people[n])people[n]=findfather(people[n]);return people[n];}int main(){#ifndef ONLINE_JUDGEfreopen("in.txt","r",stdin);#endifint t,n,m,i,a,b,sum;scanf("%d",&t);while (t--){scanf("%d%d",&n,&m);for (i=1;i<=n;i++)people[i]=i;while (m--){scanf("%d%d",&a,&b);a=findfather(a);b=findfather(b);if (a!=b)people[b]=a;}sum=0;for (i=1;i<=n;i++)if (people[i]==i)sum++;printf("%d\n",sum);}return 0;}


原创粉丝点击