D - 数据中心

题意介绍

给一个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;
	
}
发布了40 篇原创文章 · 获赞 0 · 访问量 1065

猜你喜欢

转载自blog.csdn.net/weixin_44934885/article/details/105182256