P2330求助
  • 板块题目总版
  • 楼主WD2c0mP
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/7/26 20:35
  • 上次更新2024/7/26 22:07:16
查看原帖
P2330求助
780641
WD2c0mP楼主2024/7/26 20:35

P2330
求瓶颈最小生成树,最小生成树应该求出来是满足它的最大边就是最小的吧(
为啥10pts (

#include<bits/stdc++.h>
using namespace std;
int n,m,tot,maxn;
int fa[1010];
struct edge{
	int u,v,w;
} e[100010];
bool cmp(edge a,edge b) {
	return a.w < b.w;
}
int find(int x) {
	while (x != fa[x]) x = fa[x] = fa[fa[x]];
	return x;
}
void kruscal() {
	sort(e + 1,e + m + 1,cmp);
	for (int i = 1;i <= m;i ++) {
		int eu = e[i].u,ev = e[i].v,val = e[i].w;
		if (find(eu) == find(ev)) continue;
		fa[ev] = eu;
		maxn = max(maxn,val);
		if (++tot == n - 1) return ;
	}
}
int main() {
	cin >> n >> m;
	for (int i = 1;i <= n;i ++) fa[i] = i;
	for (int i = 1;i <= m;i ++) cin >> e[i].u >> e[i].v >> e[i].w;
	kruscal();
	cout << n - 1 << " " << maxn << endl;
	return 0;
}
2024/7/26 20:35
加载中...