hdoj 3635 Dragon Balls 并查集的基本特征
来源:互联网 发布:期货跟现货的区别知乎 编辑:程序博客网 时间:2024/06/08 01:49
做了好多基础的并查集,理解的越来越深了
这个题包含了一些并查集的基本特点
#include<cstdio>#include<cstring>#include<iostream>using namespace std;const int N= 10010;int root[N];int rank[N];//记录每个集合的个数int num[N];//记录转移次数,类似于树的高度void init(int n){ for(int i=0;i<=n;i++) { root[i]=i; rank[i]=1; num[i]=0; }}int find(int x){ if(x==root[x]) return x; int temp=root[x]; root[x]=find(root[x]); num[x]+=num[temp];//回溯,由根节点开始向下加 return root[x];}void Merge(int a,int b){ int x=find(a); int y=find(b); if(x!=y) { rank[x]+=rank[y];//集合合并在一起,被合并的就不是根节点了 rank[y]=0; num[y]=1; root[y]=x; }}int main(){ int T; cin>>T; for(int kase=1;kase<=T;kase++) { int n,m,x,y; char ch[2]; cin>>n>>m; init(n); printf("Case %d:\n",kase); for(int i=0;i<m;i++) { scanf(" %s%d",ch,&x); if(ch[0]=='T') { scanf("%d",&y); Merge(y,x); } if(ch[0]=='Q') {int t=find(x); printf("%d %d %d\n",t,rank[t],num[x]); } } } return 0;}
0 0
- hdoj 3635 Dragon Balls 并查集的基本特征
- HDOJ 3635 Dragon Balls 并查集
- hdoj 3635 Dragon Balls【并查集】
- HDOJ 3635 Dragon Balls(并查集)
- HDOJ-3635 Dragon Balls (并查集的查找)
- hdoj--3635--Dragon Balls(并查集记录深度)
- HDOJ 3635 Dragon Balls(并查集)
- HDOJ 题目3635Dragon Balls(带权值的并查集,模板)
- HDU 3635 Dragon Balls(并查集)
- hdu 3635 Dragon Balls(并查集)
- HDU 3635 Dragon Balls - 并查集
- hdu 3635 Dragon Balls 并查集
- HDU 3635 Dragon Balls(并查集)
- hdu-3635 Dragon Balls(并查集)
- HDU 3635 Dragon balls -并查集
- hdu Dragon Balls 3635【并查集】
- HDU 3635 Dragon Balls(并查集)
- hdu 3635 Dragon Balls(并查集的各种应用)
- OpenCV基础篇之绘图及RNG随机数对象
- OpenCV基础篇之像素访问
- 使用Pspice进行电路仿真
- OpenCV基础篇之图片叠加
- 循环的角度求均值
- hdoj 3635 Dragon Balls 并查集的基本特征
- OpenCV基础篇之使用CMake管理工程
- JAR内class读取内外部文件方法
- OpenCV基础篇之查找表
- CentOS上编译安装OpenCV-2.3.1与ffmpeg-2.1.2
- bzoj 1798 线段树
- OpenCV基础篇之读取显示图片
- OpenCV基础篇之像素操作对比度调节
- DSP/BIOS使用之初窥门径——滴答时钟及烧写Flash