文章

37

粉丝

68

获赞

6

访问

7.0k

头像
kruskal
综合
发布于2024年3月17日 09:35
阅读数 119

#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<<"?"<...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发