【POJ】The Suspects(裸并查集)
并查集的模板题,为了避免麻烦,合并的时候根节点大的合并到小的结点。
#include<cstdio>
#include<algorithm>
using namespace std;
const int maxn = 33333;
int fa[maxn];
int num[maxn];
int n,m,t;
void init(){
for(int i = 0; i < n; i++) {fa[i] = i; num[i] = 1;}
}
int find_father(int u){
return fa[u] == u ? u : fa[u] = find_father(fa[u]);
}
int main(){
while(scanf("%d%d",&n,&m)){
if(!m && !n) break;
init();
for(int i = 0; i < m; i++){
scanf("%d",&t);
int x,y;
for(int j = 0; j < t; j++){
scanf("%d",&y);
if(!j) x = y;
else{
int fy = find_father(y);
int fx = find_father(x);
if(fy > fx) swap(fy,fx); //为了避免麻烦。统一让小的根合并到大的根
if(fy != fx){
fa[fy] = fx;
num[fx] += num[fy];
}
}
}
}
t = find_father(0);
printf("%d\n",num[t]);
}
return 0;
}
【POJ】The Suspects(裸并查集)的更多相关文章
- POJ 2524 独一无二的宗教(裸并查集)
		题目链接: http://poj.org/problem?id=2524 Ubiquitous Religions Time Limit: 5000MS Memory Limit: 65536K ... 
- poj 1611:The Suspects(并查集,经典题)
		The Suspects Time Limit: 1000MS Memory Limit: 20000K Total Submissions: 21472 Accepted: 10393 De ... 
- POJ 1611  The Suspects (并查集)
		The Suspects 题目链接: http://acm.hust.edu.cn/vjudge/contest/123393#problem/B Description 严重急性呼吸系统综合症( S ... 
- poj  1611   The Suspects(并查集)
		The Suspects Time Limit: 1000MS Memory Limit: 20000K Total Submissions: 21598 Accepted: 10461 De ... 
- POJ 1611 The Suspects(并查集,简单)
		为什么ACM的题意都这么难懂,就不能说的直白点吗?还能不能好好的一起刷题了? 题意:你需要建一个n的并查集,有m个集合,最后要输出包含0的那个集合的元素的个数. 这是简单并查集应用,所以直接看代码吧! ... 
- poj 1733(带权并查集+离散化)
		题目链接:http://poj.org/problem?id=1733 思路:这题一看就想到要用并查集做了,不过一看数据这么大,感觉有点棘手,其实,我们仔细一想可以发现,我们需要记录的是出现过的节点到 ... 
- poj 1182 食物链 (并查集)
		http://poj.org/problem?id=1182 关于并查集 很好的一道题,开始也看了一直没懂.这次是因为<挑战程序设计竞赛>书上有讲解看了几遍终于懂了.是一种很好的思路,跟网 ... 
- POJ 1182 食物链(并查集拆点)
		[题目链接] http://poj.org/problem?id=1182 [题目大意] 草原上有三种物种,分别为A,B,C A吃B,B吃C,C吃A. 1 x y表示x和y是同类,2 x y表示x吃y ... 
- POJ1611 The Suspects (并查集)
		本文出自:http://blog.csdn.net/svitter 题意:0号学生染病,有n个学生,m个小组.和0号学生同组的学生染病,病能够传染. 输入格式:n,m 数量 学生编号1,2,3,4 ... 
随机推荐
- hdu2050(递推)
			题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2050 (1) n条直线最多分平面问题 题目大致如:n条直线,最多可以把平面分为多少个区域. 析:可能你 ... 
- Volley该框架使用了大量的请求图片
			尊重原创 http://write.blog.csdn.net/postedit/26142025 代码下载:http://download.csdn.net/detail/yuanzeyao2008 ... 
- Redis 安装与简单示例(转)
			本文转载自:http://www.cnblogs.com/kissdodog/p/3570984.html Redis的安装 Redis下载地址如下:https://github.com/dmajki ... 
- 安装了VS2010 sp1 后再安装ASP.NET MVC 3.0的问题(Final Result: Installation failed with error code: (0x80070643), "安装时发生严重错误 " (Ela)
			原文:安装了VS2010 sp1 后再安装ASP.NET MVC 3.0的问题(Final Result: Installation failed with error code: (0x800706 ... 
- 让Linux开机运行命令
			开机的时候需要linux 自动执行命令很简单 只需要把要执行的命令输入操作系统启动的时候要加载的文件里面就行了,一般写在 /etc/rc.local里面 #vim /etc/rc.local 按o键 ... 
- UVALive - 4621 Cav 贪心 + 分析
			题目大意:有一张洞穴地图,要在这个洞穴里面存放水,要求水不能碰到洞穴顶部.如今给出每一个位置的顶部位置和地面高度.问最多能够放多少水 解题思路:根据物理定理,每一段有水的连续区间,水位高度必须相等 所 ... 
- SO_REUSEADDR 套接字选项应用
			在网络上的SO_REUSEADDR套接字选项是用来解决地址问题重用了大量的信息.但仅仅停留在文字的表达.并没有实例,非常easy误导谁刚开始学习,和不解,此处不再赘述. 的使用该选项,以及须要注意的问 ... 
- 从零开始学Xamarin.Forms(三)  Android 制作启动画面
			原文:从零开始学Xamarin.Forms(三) Android 制作启动画面 Xamarin.Forms 在启动的时候相当慢,必须添加一个启动界面,步骤如下: 1.将启动画面的图片命名为:s ... 
- java连接数据库——JDBC连接数据库
			DBUtil.java // 数据库操作文件 package com.bjpowernode.jdbc.util; import java.io.File; import java.io.File ... 
- OGG-01008 Extract displays Discarding bad record (discard recs=1) when using filter or where clause
			因为在extract參数文件里使用了where语句,而where后面的的条件列又不是主键,没有为update.delete操作记录日志,因此会报1008错误. Applies to: Oracle G ... 
