10分求调
查看原帖
10分求调
1208964
leo_messi10楼主2024/8/13 10:00
#include <iostream>
#include <algorithm>
using namespace std;
int fa[1000000];
struct node
{
	int x,y,t;
}p[1000000];
bool cmp(node a,node b) {return a.t<b.t;}
int finnd(int x) { return fa[x] == x ? x : fa[x] = finnd(fa[x]); }
void merge(int x, int y) { if(finnd(x)!=finnd(y))fa[finnd(x)] = finnd(y); }
int main() {
    int n, m;
    cin >> n >> m;
    int mm=m;
    for(int i=1;i<=n;i++){fa[i] = i;}
    for(int i=1;i<=m;i++) cin >> p[i].x >> p[i].y >> p[i].t;
	sort(p+1,p+mm+1,cmp);
    for(int i=1;i<=mm;i++)
    {
    	merge(p[i].x,p[i].y),n--;
    	if(n==1) 
		{
			cout<<p[i].t;
			return 0;
		}
  	}
  	cout<<-1;
  	return 0;
}
2024/8/13 10:00
加载中...