hdu1102 克鲁斯卡尔+并查集
来源:互联网 发布:动态桌面主题下载软件 编辑:程序博客网 时间:2024/06/06 16:13
#include <iostream>
#include <cstdio>
#include <cstring>
#include "algorithm"
using namespace std;
int n,pos;
int op[10000];
int ed[10000];
int dis[10000];
int tmp[10000];
int father[110];
int cmp(int a,int b){return dis[a]<dis[b];}
int Find(int a){return father[a]==a?a:father[a]=Find(father[a]);}
int main(void)
{
int temp,ans;
while(scanf("%d",&n)!=EOF)
{
pos=0;ans=0;
for(int i=0;i<=n;i++)
father[i]=i;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
{
scanf("%d",&temp);
if(i==j) continue;
op[pos]=i;ed[pos]=j;dis[pos]=temp;tmp[pos]=pos;
pos++;
}
int cot,a,b;
scanf("%d",&cot);
for(int i=0;i<cot;i++)
{
scanf("%d%d",&a,&b);
father[Find(a)]=Find(b);
}
sort(tmp,tmp+pos,cmp);
for(int i=0;i<pos;i++)
{
int a=Find(op[tmp[i]]),b=Find(ed[tmp[i]]);
if(a==b) continue;
father[a]=b;
ans+=dis[tmp[i]];
}
printf("%d\n",ans);
}
}
#include <cstdio>
#include <cstring>
#include "algorithm"
using namespace std;
int n,pos;
int op[10000];
int ed[10000];
int dis[10000];
int tmp[10000];
int father[110];
int cmp(int a,int b){return dis[a]<dis[b];}
int Find(int a){return father[a]==a?a:father[a]=Find(father[a]);}
int main(void)
{
int temp,ans;
while(scanf("%d",&n)!=EOF)
{
pos=0;ans=0;
for(int i=0;i<=n;i++)
father[i]=i;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
{
scanf("%d",&temp);
if(i==j) continue;
op[pos]=i;ed[pos]=j;dis[pos]=temp;tmp[pos]=pos;
pos++;
}
int cot,a,b;
scanf("%d",&cot);
for(int i=0;i<cot;i++)
{
scanf("%d%d",&a,&b);
father[Find(a)]=Find(b);
}
sort(tmp,tmp+pos,cmp);
for(int i=0;i<pos;i++)
{
int a=Find(op[tmp[i]]),b=Find(ed[tmp[i]]);
if(a==b) continue;
father[a]=b;
ans+=dis[tmp[i]];
}
printf("%d\n",ans);
}
}
0 0
- hdu1102 克鲁斯卡尔+并查集
- POJ 3723 Conscription 克鲁斯卡尔+并查集
- 克鲁斯卡尔(并查集)hdu 1233
- hdu 1879(并查集+克鲁斯卡尔)
- hdu1102 很好的最小生成树克鲁斯卡尔算法
- 克鲁斯卡尔算法模板(并查集完美结合)
- HDU 3371 Connect the Cities (最小生成树 并查集+克鲁斯卡尔)
- HDU 1233还是畅通工程——克鲁斯卡尔算法(带并查集)
- hdu 1233(贪心算法,克鲁斯卡尔算法,并查集)
- 克鲁斯卡尔算法(kruskal)(并查集的简单应用)
- 最小生成树(qsort+并查集+克鲁斯卡尔(Kruskal)算法)
- 并查集的一些个人观点 以及克鲁斯卡尔算法的详解
- 克鲁斯卡尔算法求最小生成树(并查集)
- HDU-3938 Portal 克鲁斯卡尔思想 (离线并查集)
- 【贪心算法(三)】并查集和克鲁斯卡尔算法
- 51nod 1640天气晴朗的魔法(克鲁斯卡尔,并查集)
- DS-7.1实现求最小生成树的克鲁斯卡尔算法(并查集实现)
- HUD OJ 1232 畅通工程 和 HDU OJ 1233还是畅通工程【并查集和克鲁斯卡尔算法】
- windows下安装vmware10并在虚拟机上安装linux步骤
- zoj 2588 Burning Bridges 割边求解
- Android监听器三种实现方式
- Android集成LeanCloud用户反馈SDK要注意点
- bzoj 1054 移动玩具
- hdu1102 克鲁斯卡尔+并查集
- linux常用命令(21):find命令之xargs
- 在iOS中如何设置默认语言
- activity注册的问题,无法正常显示
- Mac 安装配置启动Tomcat
- Android第六讲——数据存储(五种)SharedPreferences、内部存储(缓存cache)、外部存储(Sdcrad)、SQLite数据库、网络存储
- 从零开始
- 谈电子政务云
- Wpf 实现登陆窗口