hdu1213+并查集模板(优化)
来源:互联网 发布:淘宝如何提高搜索排名 编辑:程序博客网 时间:2024/06/06 12:44
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
const int MAX=1010;
bool flag[MAX];
{
for(int i=1; i<=n; i++)
{
par[i]=i;
ranks[i]=0;
}
}
int find_set(int a){
if(a!=par[a]){
par[a]=find_set(par[a]);
}
return par[a];
}
void union_set(int a,int b){
a=find_set(a);
b=find_set(b);
if(ranks[a]>ranks[b])
par[b]=a;
else{
par[a]=b;
if(ranks[a]==ranks[b])
ranks[b]++;
}
{
int T;
scanf("%d",&T);
while(T--)
{
scanf("%d%d",&n,&m);
make_set();
for(int i=1;i<=m;i++){
int a,b;
scanf("%d%d",&a,&b);
if(find_set(a)!=find_set(b))
union_set(a,b);
}
int ans=0;
memset(flag,0,sizeof(flag));///数组初始化
for(int i=1;i<=n;i++){
if(!flag[find_set(i)]){///元素i所在的集合为find_set(i),而并不是par[i];
ans++;
flag[find_set(i)]=true;
}
}
printf("%d\n",ans);
}
return 0;
}
#include <cstdio>
#include <cstring>
using namespace std;
const int MAX=1010;
bool flag[MAX];
int n,m;
///并查集核心代码
int par[MAX];
int ranks[MAX];
{
for(int i=1; i<=n; i++)
{
par[i]=i;
ranks[i]=0;
}
}
int find_set(int a){
if(a!=par[a]){
par[a]=find_set(par[a]);
}
return par[a];
}
void union_set(int a,int b){
a=find_set(a);
b=find_set(b);
if(ranks[a]>ranks[b])
par[b]=a;
else{
par[a]=b;
if(ranks[a]==ranks[b])
ranks[b]++;
}
}
{
int T;
scanf("%d",&T);
while(T--)
{
scanf("%d%d",&n,&m);
make_set();
for(int i=1;i<=m;i++){
int a,b;
scanf("%d%d",&a,&b);
if(find_set(a)!=find_set(b))
union_set(a,b);
}
int ans=0;
memset(flag,0,sizeof(flag));///数组初始化
for(int i=1;i<=n;i++){
if(!flag[find_set(i)]){///元素i所在的集合为find_set(i),而并不是par[i];
ans++;
flag[find_set(i)]=true;
}
}
printf("%d\n",ans);
}
return 0;
}
0 0
- hdu1213+并查集模板(优化)
- hdu1213并查集模板
- hdu1213(并查集模板)
- HDU1213 并查集模板
- hdu1213(并查集模板)
- hdu1213 并查集
- HDU1213并查集
- HDU1213 并查集
- HDU1213(并查集)
- 并查集-hdu1213
- hdu1213 并查集
- 并查集模板题 HDU1213 How Many Tables
- hdu1213(并查集)
- hdu1213(并查集复习)
- HDU1213并查集基础
- HDU1213 基础并查集
- HDU1213基础并查集
- hdu1213(基础并查集)
- 嘛,开通博客了。
- 没错又是感慨
- day 028 qq输入框加载FaceView
- 黑马程序员_面向对象
- Linux: Linux操作系统及常用命令
- hdu1213+并查集模板(优化)
- HDU2051 10进制转化成2进制
- POJ 1664 放苹果
- 黑马程序员—C语言—运算符小结
- EditText的一些常用功能
- Android 编程下图片的内存优化
- TextView属性大全
- px、dp和sp,这些单位有什么区别?
- spark:学习杂记--36