poj 1611
来源:互联网 发布:淘宝视频制作 编辑:程序博客网 时间:2024/06/05 14:42
/*
并查集
POJ1611主要在于压缩路径
*/
#include <iostream>
#include <cstdio>
using namespace std;
const int MAXN = 30100;
int Parent[MAXN];
int Total[MAXN];
int Get_parent(int a) //路径压缩
{
if(Parent[a] == a)
return a;
else
Parent[a] = Get_parent(Parent[a]);
return Parent[a];
/*
if(Parent[i] != a)
Parent[a] = Get_parent(Parent[a]);
return Parent[a];
*/
}
void Merge(int a, int b)
{
int p1 = Get_parent(a);
int p2 = Get_parent(b);
if (p1 == p2)
return;
Parent[p2] = p1;
Total[p1] += Total[p2];
}
int main ()
{
int n, m, i, j, k, a, b, nSum;
while(scanf("%d%d", &n, &m) && (m || n))
{
nSum = 0;
for(i = 0; i < n; ++i)
{
Total[i] = 1;
Parent[i] = i;
}
for(i = 0; i < m; ++i)
{
scanf("%d", &k);
scanf("%d", &a);
for(j = 0; j < k - 1; ++j)
{
scanf("%d", &b);
Merge(a, b); //将已有的合并在一起的树合并在一起
}
}
printf("%d\n", Total[Get_parent(0)]);
}
return 0;
}
并查集
POJ1611主要在于压缩路径
*/
#include <iostream>
#include <cstdio>
using namespace std;
const int MAXN = 30100;
int Parent[MAXN];
int Total[MAXN];
int Get_parent(int a) //路径压缩
{
if(Parent[a] == a)
return a;
else
Parent[a] = Get_parent(Parent[a]);
return Parent[a];
/*
if(Parent[i] != a)
Parent[a] = Get_parent(Parent[a]);
return Parent[a];
*/
}
void Merge(int a, int b)
{
int p1 = Get_parent(a);
int p2 = Get_parent(b);
if (p1 == p2)
return;
Parent[p2] = p1;
Total[p1] += Total[p2];
}
int main ()
{
int n, m, i, j, k, a, b, nSum;
while(scanf("%d%d", &n, &m) && (m || n))
{
nSum = 0;
for(i = 0; i < n; ++i)
{
Total[i] = 1;
Parent[i] = i;
}
for(i = 0; i < m; ++i)
{
scanf("%d", &k);
scanf("%d", &a);
for(j = 0; j < k - 1; ++j)
{
scanf("%d", &b);
Merge(a, b); //将已有的合并在一起的树合并在一起
}
}
printf("%d\n", Total[Get_parent(0)]);
}
return 0;
}
0 0
- POJ 1611
- POJ 1611
- poj 1611
- poj-1611
- poj 1611
- poj 1611
- poj 1611
- POJ 1611
- poj 1611
- POJ 1611
- poj--1611
- poj 1611
- poj-1611
- poj 1611
- poj-1611
- poj 1611
- poj 1611
- poj 1611
- 10-hibernate组件关联关系映射
- java @override 报错处理
- 树莓派启动盘制作和备份
- ArrayAdapter(API分析)
- Coins (HDU 2844) —— 多重背包
- poj 1611
- VirtualBox下安装ubuntu出现单个文件超出了4G的提示
- import org.junit.Test;报错处理
- iOS App Archive 版本出错的问题 调试和解决方法
- 2014-7-15任务完成情况
- 截取指定长度的字符串(汉字不出现半个)
- 很好的技术博文推荐(持续更新)
- 用正向和逆向最大匹配算法进行中文分词(续)
- 【算法】插入排序 insert sort algorithm