/*
* @Description: To iterate is human, to recurse divine.
* @Autor: Recursion
* @Date: 2022-03-25 09:35:13
* @LastEditTime: 2022-03-25 10:06:01
*/
#include<bits/stdc++.h>
using namespace std;
const int N = 1e6 + 10;
int f[N];
int n,m,ans,cnt;
int find(int x)
{
if(x == f[x]) return x;
else
return f[x] = find(f[x]);
}
struct node{
int u;
int v;
int w;
}edge[N];
void kruskal()
{
for(int i = 1;i <= m;i ++){
int x = edge[i].u;
int y = edge[i].v;
x = find(f[x]);
y = find(f[y]);
if(x == y) continue;
f[x] = y;
ans = edge[i].w;
cnt++;
if(cnt == n - 1)
break;
}
}
void init()
{
for(int i = 1;i <= n;i ++)
f[i] = i;
}
bool cmp(node x,node y)
{
if(x.w < y.w)
return true;
else
return false;
}
int main()
{
cin >> n >> m;
init();
for(int i = 1;i <= m;i ++){
cin >> edge[i].u >> edge[i].v >> edge[i].w;
}
sort(edge + 1,edge + 1 + m,cmp);
// for(int i = 1;i <= m;i ++)
// cout << edge[i].w << endl;
kruskal();
cout << ans << endl;
}
P1547 [USACO05MAR]Out of Hay S
最新推荐文章于 2023-08-11 14:26:44 发布