POJ 1611 求节点0的强连通的节点个数
2016-07-14 22:22
302 查看
题目大意:
有一个学校,有N个学生,编号为0-N-1,现在0号学生感染了非典,凡是和0在一个社团的人就会感染,并且这些人如果还参加了别的社团,他所在的社团照样全部感染,求感染的人数。
有一个学校,有N个学生,编号为0-N-1,现在0号学生感染了非典,凡是和0在一个社团的人就会感染,并且这些人如果还参加了别的社团,他所在的社团照样全部感染,求感染的人数。
#include<cstdio> #include<iostream> #include<algorithm> #include<cstring> using namespace std; #define INF 200000 const int MAXN=30005; int F[MAXN],boy[MAXN]; void init(){ //memset(vis,0,sizeof(vis)); for(int i=0;i<=MAXN;i++){F[i]=i;boy[i]=1;} } int GetFather(int x){ return F[x]==x?x:F[x]=GetFather(F[x]); } void Union(int a,int b) { int t1=GetFather(a); int t2=GetFather(b); if(t1!=t2) {F[t1]=t2;boy[t2]+=boy[t1];} } int main() { int n,m,g; while(~scanf("%d%d",&n,&m),n){ init(); while(m--){ scanf("%d",&g); int t1,t2; scanf("%d",&t1); for(int i=1;i<g;i++){ scanf("%d",&t2); Union(t1,t2); t1=t2; } } printf("%d\n",boy[GetFather(0)]); } return 0; }
相关文章推荐
- SystemVerilog中结合interface实现输出数据总线的功能(1)
- Swift基本语法(4)-字符串
- 探讨Scala中的this.type
- 小项目组迭代开发流程
- 【题】【树状数组】NKOJ 3702 打鼹鼠
- 程序员调试能力提升
- 计算广告学学习1 - 广告的目的与效果
- Java垃圾回收机制
- 在WPF中使用配置文件(ConfigurationManager)
- PickerView居中,循环显示一系列
- Android中单例模式应用实战详解
- Android进阶——Preference详解之Preference系的基本应用和管理(二)
- JAVA虚拟机:垃圾收集算法(标记清除算法、复制算法、标记整理算法、分代收集算法)
- Java中非静态代码块,静态代码块和构造方法的初始化顺序
- linux驱动开发:1.字符设备驱动开发
- kali信息搜集工具之CaseFile
- 剑指offer之旋转数组的最小数字
- 341. Flatten Nested List Iterator
- Tried树 (字典查找树)的创建
- Unity3D 2D入门——第2天:C#,我跟C++有点眼缘