并查集求连通分量的个数
来源:互联网 发布:绝代双骄三 知乎 编辑:程序博客网 时间:2024/06/15 17:27
题目连接:http://acm.hdu.edu.cn/diy/contest_showproblem.php?cid=23144&pid=1001
简单的并查集题目,先做一次并查集,然后如果f[x] == x那么联通分量数目加1
代码如下:
#include<iostream>#include<algorithm>#include<string>#include<stack>#include<queue>#include<set>#include<map>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#include<time.h>#include<math.h>#define N 1005#define eps 1e-9#define pi acos(-1.0)#define P system("pause")using namespace std;int f[N];int find(int x){ return x == f[x] ? x : f[x] = find(f[x]); }int main(){//freopen("input.txt","r",stdin);//freopen("output.txt","w",stdout); int n,m; while(scanf("%d",&n) && n) { scanf("%d",&m); int i; int x,y; for(i = 0; i <= n; i++) f[i] = i; for(i = 0; i < m; i++) { scanf("%d%d",&x,&y); x = find(x); y = find(y); if(x != y) f[x] = y; } int ans = 0; for(i = 1; i <= n; i++) // {cout<<f[i]<<" "; if(f[i] == i) ans++; //}cout<<endl; printf("%d\n",ans-1); } // P; return 0; }
0 0
- 并查集求连通分量的个数
- 并查集求连通分量的个数之hdu1213
- 并查集找连通分量的个数
- 连通分量的个数-->并查集的使用
- 连通分量个数(并查集的应用)
- hdu 1232 并查集 求连通分量的个数
- sdut 1488 连通分量的个数(并查集)
- 连通分量个数(连通分量_并查集)
- csu 1601: War(并查集求每次去掉一条边后连通分量的个数)
- 强连通分量个数的tarjan算法
- (java)DFS求连通分量的个数
- 数据结构实验:连通分量的个数
- 连通分量个数
- hdu 1198 dfs||并查集求连通分量个数,关键建图
- 数据结构实验:连通分量个数(并查集)
- 数据结构实验:连通分量个数(并查集)
- 数据结构实验:连通分量个数——并查集
- 暑假集训 8.17 数据结构实验:连通分量个数(并查集判断连通分量个数 路径压缩)sdutoj1488
- php错误:failed to open stream: HTTP request failed!
- automake:从c文件到make
- 教你20招摆脱心理压力
- mysql导入多个文件技巧
- JS中的phototype
- 并查集求连通分量的个数
- 【解惑】JVM如何理解Java泛型类
- 好吧,CSDN你赢了
- H264和x264简单介绍
- NDIS(ddk上passthru翻译)
- COCOS2D-X FRAME动画创建随笔
- Linux-2.6 open()打开文件涉及的内核处理和数据结构分析
- 一个关于AOP简单应用的好博客地址
- 数据路由过程