并查集-poj-1611-The Suspectst
2016-03-10 19:44
429 查看
题目的意思是有0到n个人,0号感染病毒,数据有m组每组的人只要有一个就所有人都会被感染。问一共有几个人被感染。
简单的并查集,fa表示种类,num表示该种类的个数,不包括父节点,找的时候只要找到根就好。
简单的并查集,fa表示种类,num表示该种类的个数,不包括父节点,找的时候只要找到根就好。
#include<cstdio> #include<iostream> #include<cmath> #include<cstring> #include<algorithm> using namespace std; int fa[33333]; int num[33333]; int find_fa(int n) { return fa ==n?n:find_fa(fa ); } void inti(int n) { for(int i=0;i<=n;i++) { fa[i]=i; num[i]=1; } } int main() { int n,m; while(scanf("%d%d",&n,&m)&&(m+n)!=0) { inti(n); int x,a; for(int i=1;i<=m;i++) { scanf("%d",&x); scanf("%d",&a); int fx=find_fa(a); int tt; for(int j=2;j<=x;j++) { scanf("%d",&tt); int fy=find_fa(tt); if(fx!=fy) { fa[fy]=fx; num[fx]+=num[fy]; } } } int sss=find_fa(fa[0]); cout << num[sss] << endl; } return 0; }
相关文章推荐
- mysql 错误集
- POJ2362
- linux下c程序调用reboot函数实现直接重启【转】
- 全局变量与局部变量重名
- 软件工程个人作业01
- 如何更专业的使用Chrome开发者工具
- 复旦sakai安装指南
- 读书笔记-《统计思维 程序员数学之概率统计》
- 问题二
- Tomcat类分析-Lifecycle
- Hash表(链接法)的插入,删除和查找
- Visual C++中 #include "stdafx.h" 头文件的用法
- 第二周项目5-用循环求.2
- Spark RDD 多文件输入
- [Leetcode]Sudoku Solver
- UVa 11039 Building designing (求按绝对值升序最长正负交替数列长度)
- 用信号量解决进程的同步与互斥
- FZU 2103 Bin & Jing in wonderland
- CSS3 3D效果
- DM8168外挂IC卡读写异常