并查集
来源:互联网 发布:php用iis和apache 编辑:程序博客网 时间:2024/05/18 03:20
并查集模板题,将两个集合合并是将根合并,最后找根为0的个数即可:
#include<stdio.h>#define INF 200000000int pre[30010],n;void init(){for(int i=0;i<n;i++){pre[i] = i;}}int find(int x){int p=x;while(x != pre[x]){x = pre[x];}while(p!=pre[p]){int z = p;p = pre[p];pre[z] =x;}return x;}int main(){int m;while(~scanf("%d%d",&n,&m)){init(); int k,a[30010],b,p=0;if(n==0&&m==0)break;for(int i=0;i<m;i++){ int min = INF;scanf("%d",&k);for(int j=0;j<k;j++){scanf("%d",&a[j]);if(a[j]<min)min = a[j]; }for(int i1 = 0;i1<k;i1++){//找根; if(a[i1]!=min){ int aa = find(a[i1]); int bb = find (min); if(aa>bb)pre[aa] = bb; else pre[bb] = aa; } //分属节根 }}for(int i=0;i<n;i++){if(find(i)==0)p++;}printf("%d\n",p);}}
0 0
- HDU3938 并查集 并查集
- 并查集(集并查)
- HDU1232 并查集<并>
- 并查集
- 数据结构-并查集
- 并查集
- 并查集!
- 并查集
- 并查集
- 并查集
- 并查集
- 并查集总结
- 并查集学习
- 并查集
- 并查集
- 并查集
- 所谓并查集
- 并查集
- 物联网时代:6款Linux家用智能设备
- OGNL表达式相关例子
- android中图库中选择视频
- 64 鸡兔同笼
- 坑爹的SetCinematicMode--如何屏蔽用户输入的移动指令
- 并查集
- C++ Class Size (C++ 类大小)
- ONLG表达式中做地址转换器
- 已命名的变量
- 分布式搜索elasticsearch配置文件详解
- COM原理(一)
- 消除字节对齐
- 解决DB之间且不同tablespace之间的数据导出导入操作(expdp和impdp)
- 结构体中定义函数指针