poj 1611 The Suspects // hoj 1564 The Suspects 并查集
/*
题目:
是说学生0怀疑有SARS病,跟他接触过的俱乐部的所有人以及他接触过的人再与别人接触,
都有可能有SARS病,要你求出给出的所有俱乐部人的名单,要你求出所有的嫌疑犯。。。
分析:
用并查集的方法做,具体实现是先定义n个森林,然后再把同一的人所在的森林合并在一起,
而并查集的改善方法有两种,我的使用的是压缩路径的方法
*/
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
const int X = 30010;
int parent[X],a[X],Rank[X],m,n,t;
int find_set(int x) //路径压缩
{
if(x!=parent[x])
parent[x] = find_set(parent[x]);
return parent[x];
}
void union_set(int i,int j)
{
i = find_set(i);
j = find_set(j);
if(i!=j)
if(Rank[i]>Rank[j]) //等级越高,所在的树的高度越高
parent[j] = i;
else
{
parent[i] = j;
if(Rank[i]==Rank[j])
Rank[j]++;
}
}
int main()
{
freopen("sum.in","r",stdin);
freopen("sum.out","w",stdout);
int x,pre;
while(cin>>n>>m,n||m)
{
for(int i=0;i<n;i++)
{
parent[i] = i;
Rank[i] = 0;
}
for(int i=0;i<m;i++)
{
scanf("%d",&t);
if(t) //只需找出俱乐部的第一个人与其他人并起来即可
scanf("%d",&pre);
for(int i=0;i<t-1;i++)
{
scanf("%d",&x);
union_set(pre,x);
}
}
pre = find_set(0); //找到0所在的树的根节点编号,再用它与其他的人相比较
int ans = 1;
for(int i=1;i<n;i++)
if(pre==find_set(i))
ans++;
cout<<ans<<endl;
}
return 0;
}
转载于:https://www.cnblogs.com/yejinru/archive/2012/03/22/2412068.html
poj 1611 The Suspects // hoj 1564 The Suspects 并查集相关推荐
- POJ 1703 Find them, Catch them(路径压缩并查集)
POJ 1703 Find them, Catch them(路径压缩并查集) 2014年03月11日 20:13:54 阅读数:881 POJ 1703 Find them, Catch them( ...
- 【割边缩点】解题报告:POJ - 3694 - Network(Tarjan割边缩点 + LCA + 并查集优化)
POJ - 3694 - Network 给定一张N个点M条边的无向连通图,然后执行Q次操作,每次向图中添加一条边,并且询问当前无向图中"桥"的数量.N≤105,M≤2∗105,Q ...
- POJ 1984 Navigation Nightmare 【经典带权并查集】
任意门:http://poj.org/problem?id=1984 Navigation Nightmare Time Limit: 2000MS Memory Limit: 30000K To ...
- POJ 2492 A Bug's Life (带权并查集 向量偏移)
题意 : 给你 n 只虫且性别只有公母, 接下来给出 m 个关系, 这 m 个关系中都是代表这两只虫能够交配, 就是默认异性, 问你在给出的关系中有没有与异性交配这一事实相反的, 即同性之间给出了交配 ...
- POJ 2492 A Bug's Life 带权并查集
题意: 思路: mod2 意义下的带权并查集 如果两只虫子是异性恋,它们的距离应该是1. 如果两只虫子相恋且距离为零,则它们是同性恋. (出题人好猥琐啊) 注意: 不能输入一半就break出来.... ...
- POJ - 3694 Network(边双缩点+LCA+并查集优化)
题目链接:点击查看 题目大意:给出一个由n个点组成的无向图,现在有m次操作,每次操作都会向图中增加一条无向边,每次操作后询问当前图中有多少个桥 题目分析:题意很好理解,思路也很好想,就是代码量有点小多 ...
- poj 1182 食物链(高级的带权并查集)
食物链 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 76486 Accepted: 22742 Description ...
- POJ - 1611 The Suspects
题目链接:1611 -- The Suspects 问题描述 思路 简单并查集 代码 #include <cstdio> #include <cstring> #include ...
- POJ 并查集 题目汇总 ——czyuan原创(转)
继续数据结构的复习,本次的专题是:并查集. 并查集,顾名思义,干的就是"并"和"查"两件事.很多与集合相关的操作都可以用并查集高效的解决. 两个操作代码: ...
最新文章
- ORACLE数据库对比表结构
- Quanta杂志长文翻译:通过信息论判定个体的边界
- Docker fence
- ubuntu 电源按钮操作_桌面应用|在 Ubuntu 中使用 Slimbook Battery Optimizer 切换电源模式...
- 《JAVA与模式》之模板方法模式
- rust8G内存够不够用_Rust是如何做到内存安全的
- linux服务器查配置信息失败,查看Linux服务器的配置信息
- 【渝粤题库】广东开放大学 跨文化商务沟通 形成性考核
- python中+=和=+的区别
- Linux 定时任务 定时备份mysql数据
- 华为vrrp默认优先级_华为vrrp配置
- 2019语言与智能技术竞赛
- 03.SpringBoot入门案例及详解
- java程序设计精编教程第3版电子版课后答案_Java程序设计精编教程-(第3版)-微课版...
- 统计信号处理基础 习题解答3-9
- for linux pdf转mobi_在Linux上,如何为Amazon Kindle转换各种电子书格式
- 机器学习(聚类七)——层次聚类的优化算法
- 小学计算机教室海报,小学美术制作海报教案.doc
- n维随机变量的分布函数和独立性
- 搞IT的you知道这些么……
热门文章
- Flink DDL的java代碼中的DeserializationSchemaFactory與TableSourceFactory報錯解決方案記錄彙總
- 获取国内国外flink的mailing list技术支持
- superset可视化-Time-series Percent Change
- Property or method xxxx is not defined on the instance but referenced during render.
- datatable移动一列的位置
- python2.7下面字节数组(ByteArray)和16进制字符串(HexString)转化
- python2.x环境下unicode乱码转中文显示的2种解决方案总结
- OpenCV学习笔记十一-findcounters函数
- 深度学习(四十四)——GAN的评估指标, DCGAN, WGAN-GP, CGAN, BEGAN EBGAN
- 红黑联盟c语言教程,1.1.2 C语言的特点