并查集模板
2015-07-26 14:25
323 查看
#include<cstdio> #include<algorithm> using namespace std; #define MAX_N 100 int par[MAX_N]; int rankk[MAX_N]; void init(int n) { for(int i=0;i<n;i++) { par[i]=i; rankk[i]=0; } } int find(int x) { if(par[x]==x) return x; else return par[x]=find(par[x]); } void union(int x,int y) { x = find(x); y = find(y); if(x == y) return ; if(rankk[x] < rankk[y]){ par[x]=y; } else { par[y]=x; if(rankk[x] == rankk[y]) rankk[x]++; } } bool same(int x,int y) { return find(x) == find(y); } int main() { return 0; }
相关文章推荐
- UVa 11235 FrequentValues(RMQ)
- COJ 1224 ACM小组的古怪象棋
- 搬家啦~搬到博客园去
- JAVA集中中 List Set Map 区别和关系
- 嵌入式系统基础知识------之嵌入式系统中信息表示与运算基础(1.4)
- Oracle11g监听程序当前无法识别连接描述符中请求的服务
- 关于Shell 脚本的export语句
- CentOS 6.4 内核升级(2.6.32 -> 3.18.19)
- 揭密黑客轻易成为百万富翁之路
- HDOJ_Problem Archive_1004_Let the Balloon Rise
- SQL基础学习_02_查询
- Ubuntu LTS14.04 安装Drush, drupal, omega subtheme遇到的问题
- mysql101个调节和优化的方法
- eclipse编辑器下显示文件路径
- 2015-点餐系统(服务器)
- 编程之美2: 二进制重建
- How Many Answers Are Wrong----hdu3038
- 虚函数与构造函数、析构函数
- shell变量赋值和引用
- 1 MAC电脑破解开机密码