码迷,mamicode.com
首页 > 其他好文 > 详细

POJ 6111并查集

时间:2015-07-25 16:30:44      阅读:107      评论:0      收藏:0      [点我收藏+]

标签:

我发现以后写题要更细心,专心!

#include<iostream>
#include<algorithm>
#include<stdio.h>
#include<string.h>
#include<ctype.h>
#include<stdlib.h>
#include<limits.h>
#include<math.h>
#include<queue>
#include<stack>
#include<vector>
#define max(a, b) a>b?a:b;
#define min(a, b) a<b?a:b;
using namespace std;
const int N = 31000;

int f[N], r[N];
int Find(int x)
{
if(f[x]!=x)
f[x]=Find(f[x]);
return f[x];
}
int main()
{
int n, m, i, j, s, u, v;
while(scanf("%d%d", &n, &m), n+m)
{
for(i=0; i<n; i++)
{
f[i]=i;
r[i]=1;
}
for(i=0; i<m; i++)
{
scanf("%d%d", &s, &u);
int ru=Find(u);
for(j=1; j<s; j++)
{
scanf("%d", &v);
int rv=Find(v);
if(ru!=rv)
{
r[ru]+=r[rv];
f[rv]=ru;
}
}
}
int ans=Find(0);
printf("%d\n", r[ans]);
}
return 0;
}

 

POJ 6111并查集

标签:

原文地址:http://www.cnblogs.com/wazqWAZQ1/p/4676066.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!