标签:结构 printf function nbsp index 一个 clu ring i++
//这么简单的东西我就不废话了,具体看代码<br data-filtered="filtered">#include<iostream>
#include<queue>
#include<cstdio>
using
namespace
std;
int
n,m,fa[110],ans;
//fa数组记录fa【i】的根;
struct
str{
int
x,y,s;
//x——起点,y——终点,s——权值;
}u[110];
int
find(
int
x){
//寻找根;
if
(fa(x)==x)
return
x;
else
return
fa(x)=find(fa(x));
}
bool
cmp(str x,str y){
//结构体排序 ;
return
x.s<y.s;
}
int
main(){
scanf
(
"%d%m"
,&n,&m);
for
(
int
i=1;i<=m;i++){
scanf
(
"%d%d%d"
,&u[i].x,&u[i].y,&u[i].s);
}
for
(
int
i=1;i<=n;i++) fa[i]=i;
//初始化根 ;
sort(u+1,u+m+1,cmp);
q=1;
for
(
int
i=1;i<=m;i++){
int
fx=find(u[i].x);
//寻找起点的根 ;
int
fy=find(u[i].y);
//寻找终点的根;
if
(fx!=fy){
//如果不是同一个根,将两个不同的集合合并,(将fx的根付给fy也行)如:
fa[fx]=fy;
//fa【fy】=fx;
ans+=u[i].s;
//加上权值
q++;
//记录链接的边
}
if
(q==n)
break
;
}
printf
(
"%d"
,ans);
return
0;
}
标签:结构 printf function nbsp index 一个 clu ring i++
原文地址:https://www.cnblogs.com/noifish/p/10339612.html