HDU 1232 _杭电 1232题_ 并查集的应用
来源:互联网 发布:fm2017经典球员数据库 编辑:程序博客网 时间:2024/05/16 11:36
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
const int max = 1000;
int father[max];
int count;
////////////////////////
void make_set(int n)//初始化并查集 ,初始化集合数count
{
int i;
for( i = 0 ; i < n ; i++ )
father[i] = i;
count = n;
}
///////////////////////
int find_set(int n)//查找所属集合并压缩路径
{
if(n==father[n])
return n;
else father[n] = find_set(father[n]);
return father[n];
}
///////////////////////
void Union(int a,int b)//合并 ,并依情况减少集合计数 count
{
int set_a = find_set(a);
int set_b = find_set(b);
//找到头,对头处理(set_a,set_b是find_set的结果,所以它们各自代表了一个集合,即各是一个根)
if( set_a == set_b )return;
else
{
father[set_a] = father[set_b];
count--;
}
}
int main()
{
int N,M,i,j,k;
while(cin>>N)
{
if(N==0)break;
make_set(N);
cin>>M;
for( i = 0 ; i < M ; i++ )
{
cin>>j>>k;
Union(j-1,k-1);
}
cout<<count-1<<endl;
}
system("pause");
return 0;
}
- HDU 1232 _杭电 1232题_ 并查集的应用
- HDU 5606_基础并查集
- hdu 1878_欧拉回路_并查集
- hdu 1232 经典并查集应用
- 杭电 2818 并查集的应用
- 杭电1829 并查集的应用
- 杭电 1232 并查集
- 杭电1232//并查集入门
- 并查集 杭电1232
- 杭电1232-并查集
- hdu 1232 畅通工程(并查集的应用)
- 图论_并查集
- 并查集_食物链
- 并查集_ 模板
- hdu 1879_并查集_最小生成树_Kruskal
- hdu 5441 并查集的应用
- hdu 1272 并查集的应用
- 并查集的应用:hdu 1213
- 新的工作,新的开始。
- struts1.x 和struts2.x的区别
- Microsoft Outlook 设置
- 无线网络连不上 解决方法
- 用文字描述TCP的流量控制和拥塞控制
- HDU 1232 _杭电 1232题_ 并查集的应用
- Sql Server 2005 从差异备份还原数据库
- web页面加载flash文件相对路径问题
- 内容丰富的
- typedef用法详解
- sudo使用方法
- 现有Delphi项目迁移到D2009中的注意事项
- typeid -- study
- 谈搜索架构师的不同阶段