题意介绍
给一个n节点的网络图,求一个最优的树结构传输图。树结构传输图的传输时间为各边权的最大值。
题意分析
求一个最小生成树,并输出各边的最大权值。
通过代码
#include<iostream>
#include<algorithm>
using namespace std;
struct edge {
int u, v, w;
};
edge e[5000000];
int f[5000000];
int n, m, root;
int find(int x) {
if (f[x] == x) return x;
else return f[x] = find(f[x]);
}
bool cmp(edge e1, edge e2) {
return e1.w < e2.w;
}
int main() {
cin >> n;
cin >> m;
cin >> root;
for (int i = 0; i < m; i++) cin >> e[i].u >> e[i].v >> e[i].w;
sort(e, e + m, cmp);
for (int i = 1; i <= n; i++) f[i] = i;
int ans = 0, count = 0;
for (int i = 0; i < m; i++) {
if (find(e[i].u) != find(e[i].v)) {
if (count == n - 1) break;
f[find(e[i].v)] = find(e[i].u);
ans = max(ans, e[i].w);
count++;
}
}
cout << ans << endl;
}