并查集
2016-03-25 20:13
330 查看
#define MAX 10001 //结点数 int father[MAX]; void init()//初始化{for (int i = 1; i <= MAX; i++)father[i] = i;} int find(int a) {//查找并压缩 if (father[a] != a)father[a] = find(father[a]); return father[a]; } void merge(int a, int b) {//连接a,b两点 int x= find(a), y= find(b); if (x != y)father[x] = y; }
相关文章推荐
- my.cnf已经存在,影响安装--mysql
- Android之自定义控件入门
- 十六进制字符串转换为十六进制数
- Maven 遇到mybatis 发生org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):
- postgresql 数据库的启动与 关闭
- How to (seriously) read a scientific paper
- 自己动手封装VxWorks下C++基础库
- rails中如何在a标签中添加其他标签
- 管理员同志,回收站博文希望得到恢复,万分感谢
- 虚函数与纯虚函数
- 【POJ 1691】 Painting A Board(dfs)
- 外排序
- 常用正则表达式
- Hibernate一对多,多对一,多对多,一对一关系汇总
- AFFINITY PROPAGATION相似传播聚类
- linux ACL权限控制
- linux ACL权限控制
- 第三周自我总结
- 快速排序
- svn: No repository found in ‘仓库地址’ 问题解决