84分求救
  • 板块学术版
  • 楼主封禁用户
  • 当前回复3
  • 已保存回复3
  • 发布时间2023/1/8 21:18
  • 上次更新2023/10/24 05:07:02
查看原帖
84分求救
782860
封禁用户楼主2023/1/8 21:18

情况:

https://www.luogu.com.cn/record/99069133)

代码:

#include<bits/stdc++.h>
using namespace std ;
const int MAXN = 2e5+5 ;
struct node{
    int x,y,z;
    friend bool operator < (node a,node b) {
        return a.z < b.z;
    }
}a[MAXN];
int dis[MAXN];
int getf(int p) {
    return dis[p]==p?p:dis[p]=getf(dis[p]);
}
int main() {
    int n,m;
    cin>>n>>m;
    for(int i = 1;i <= n;i++) dis[i] = i;
    for(int i = 1;i <= m;i++) {
        int x,y,z;
        cin>>x>>y>>z;
        a[i] = {x,y,z};
    }
    sort(a+1,a+1+m);
    int ans = 0;
    for(int i = 1;i <= m;i++) {
        node tmp = a[i];
        if(getf(tmp.x)!=getf(tmp.y)) {
            ans += tmp.z;
            dis[getf(tmp.x)] = dis[getf(tmp.y)];
        }
    }
    cout<<ans;
}
2023/1/8 21:18
加载中...