没有No Answer的数据
查看原帖
没有No Answer的数据
1355852
haley001楼主2024/8/2 14:13

我输出不加NO Answer都能过

#include<bits/stdc++.h>
#define int long long
using namespace std;
struct bian {
	int s, b, a;
} s[100001];
int f[2001], n, m, ans = 0, tot = 0, k;
int getfa(int x) {
	return f[x] == x ? x : f[x] = getfa(f[x]);
}
void merge(int x, int y) {
	x = getfa(x), y = getfa(y);
	f[x] = y;
}
bool cmp(bian a, bian b) {
	return a.s < b.s;
}
signed main() {
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	cin >> n >> m >> k;
	for (int i = 1; i <= n; i++)f[i] = i;
	for (int i = 1; i <= m; i++)cin >> s[i].a >> s[i].b >> s[i].s;
	if (n - k == 0){cout<<0;return 0;}
	sort(s + 1, s + m + 1, cmp);
	for (int i = 1; i <= m; i++) {
		if (getfa(s[i].a) == getfa(s[i].b))continue;
		ans+=s[i].s;
		tot++;
		merge(s[i].a, s[i].b);
		if (tot == n - k) {
			cout << ans;
			return 0;
		}
	}
	//cout << "No Answer";
	return 0;
}
2024/8/2 14:13
加载中...