POJ 1611(并查集+知识)
并查集主要是两个过程,一个是并,一个是查
原理是用一个数组p[i]保存每个i的根节点,如果根节点一样则在同一个集合里,所以只有根节点p[i]=i;
查:
int find(int x){return p[x]==x?x:p[x]=find(p[x]);}
并:
void Union(int x,int y)
{
int xx = find(x);int yy=find(y);
if(xx!=yy)//不在一个集合里
p[xx]=yy;
}
#include <cstdio>
#include <iostream>
#include <queue>
using namespace std; #define sf scanf
#define pf printf
#define debug printf("!\n")
#define blank printf("\n")
#define mem(a,b) memset(a,b,sizeof(a)) const int MaxN = ;
const int INF = <<; int p[MaxN],a[MaxN]; int m,n; int find(int x){return p[x]==x?x:p[x]=find(p[x]);} void Union(int x,int y)
{
int rx = find(x);
int ry = find(y);
p[rx] = ry;
} int main()
{
int i,j,k;
while(~scanf("%d%d",&n,&m),n+m)
{
i = ;
mem(p,);
mem(a,);
for(j=;j<n;j++)
p[j] = j;
while(m--)
{
sf("%d",&k);
for(i=;i<k;i++)
{
sf("%d",&a[i]);
}
for(i=;i<k;i++)
{
Union(a[i-],a[i]);
}
}
int cnt = ;
for(i = ;i<n;i++)
{
if(find(i)==find())
cnt++;
}
pf("%d\n",cnt);
} return ;
}
POJ 1611(并查集+知识)的更多相关文章
- poj 1611(并查集)
		http://poj.org/problem?id=1611 题意:有个学生感染病毒了,只要是和这个学生接触过的人都会感染,而和这些被感染者接触的人,也会被感染,现在给定你一些协会的人数,以及所在学生 ... 
- The Suspects(POJ 1611 并查集)
		The Suspects Time Limit: 1000MS Memory Limit: 20000K Total Submissions: 30158 Accepted: 14665 De ... 
- POJ  1611并查集
		我发现以后写题要更细心,专心! #include<iostream>#include<algorithm>#include<stdio.h>#include< ... 
- poj 1984 并查集
		题目意思是一个图中,只有上下左右四个方向的边.给出这样的一些边, 求任意指定的2个节点之间的距离. 就是看不懂,怎么破 /* POJ 1984 并查集 */ #include <stdio.h& ... 
- poj 1797(并查集)
		http://poj.org/problem?id=1797 题意:就是从第一个城市运货到第n个城市,最多可以一次运多少货. 输入的意思分别为从哪个城市到哪个城市,以及这条路最多可以运多少货物. 思路 ... 
- POJ 2492  并查集扩展(判断同性恋问题)
		G - A Bug's Life Time Limit:10000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u S ... 
- POJ 2492 并查集应用的扩展
		A Bug's Life Time Limit: 10000MS Memory Limit: 65536K Total Submissions: 28651 Accepted: 9331 Descri ... 
- POJ 3228 [并查集]
		题目链接:[http://poj.org/problem?id=3228] 题意:给出n个村庄,每个村庄有金矿和仓库,然后给出m条边连接着这个村子.问题是把所有的金矿都移动到仓库里所要经过的路径的最大 ... 
- poj 1733 并查集+hashmap
		题意:题目:有一个长度 已知的01串,给出多个条件,[l,r]这个区间中1的个数是奇数还是偶数,问前几个是正确的,没有矛盾 链接:点我 解题思路:hash离散化+并查集 首先我们不考虑离散化:s[x] ... 
随机推荐
- 【转载】hadoop之failed task任务和killed task任务
			failed task可理解为自杀,也就是task本身出了问题而自杀:killed task可理解为是他杀,也就是jobtracker认为这个任务的执行是多余的,所以把任务直接杀掉.起初用hadoop ... 
- jquery源码解析:jQuery数据缓存机制详解2
			上一课主要讲了jQuery中的缓存机制Data构造方法的源码解析,这一课主要讲jQuery是如何利用Data对象实现有关缓存机制的静态方法和实例方法的.我们接下来,来看这几个静态方法和实例方法的源码解 ... 
- 【git】——简单用法
			git 更新远程代码到本地 git fetch origin master git merge origin/master 冲突: Your local changes to the followin ... 
- 设计简单登录界面(Java web)
			程序设计思想: 在Input.jsp中创建一个表格里边分别是课程名称,任课老师,教学地点,并分别用三个文本框来接受输入的三个属性, 并传到另外的Jsp页面中,又来接受三个数据,并判断传来的教师,与教室 ... 
- G - Game HDU - 5242 (数链剖分)
			题目链接: G - Game HDU - 5242 题目大意:首先是T组测试样例,给出一颗以1节点为根的树,每个节点有各自的价值,有m次从根节点出发向下走到叶子节点的机会,每次会得到所有经过节点的权值 ... 
- 【NOI2018】
			总之国赛已经过了1个月了. 感谢北大当初给我的一本约救我狗命,不然国赛就要没学上了. 铜牌倒数十多名,我觉得我也是混到了一种境界. 虽然对于集训队已经失去梦想,但是,Day1全场堪称最低的21分,也是 ... 
- mysql grant权限总结
			2019-01-07 转自 https://blog.csdn.net/wulantian/article/details/38230635 一.权限表 mysql数据库中的3个权限表:user .d ... 
- Mac 10.12安装WebStorm
			下载: (链接: https://pan.baidu.com/s/1c2o8wUG 密码: 2waz) 
- Java程序员的面试经历和题库
			最近打算换城市了,受不了北京的雾霾了,所以准备逃离啦.所以一直在面试中,整理了下最近遇到的一些面试题,供大家参考.其中会包含一些面试的小经验,如果您是面霸,希望能给予指导.自己不是大牛,如果您是大牛, ... 
- sql中COUNT(*)、COUNT(字段名)的区别
			数据表:其中IT002的Fname是null. 执行sql: ) FROM T_Employee 结果: 结论:COUNT(*)统计的是结果集的总条数,而COUNT(FName)统计的则是除了结果集中 ... 
