文章
99
粉丝
120
获赞
8
访问
96.9k
#include <bits/stdc++.h>
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <math.h>
#include <string>
using namespace std;
//
struct node{
int a,b,m;
};
int cmp(node a,node b)
{
return a.m<b.m;
}
int fa[102];
int find(int x){
if(fa[x]==x) return x;
fa[x]=find(fa[x]);
return fa[x];
}
int main() {
int N,M;
while (cin>>N>>M) {
if(N==0) return 0;
for(int i=0;i<102;++i){
fa[i]=i;
}
struct node n[102];
for(int k=0;k<N;++k){
cin>>n[k].a>>n[k].b>>n[k].m;
}
int total=0,cost=0;
//对整个结构体数组按照价格升序进行排序
sort(n,n+N,cmp);
for(int k=0;k<N;++k){
if(find(n[k].a)!=find(n[k].b)){
fa[find(n[k].a)]=find(n[k].b);
++total;
cost+=n[k].m;
}
}
if(total<M-1)
{
cout<<"?"<...
登录后发布评论
暂无评论,来抢沙发