文章
85
粉丝
0
获赞
554
访问
11.8k
#include <bits/stdc++.h>
using namespace std;
const int Max = 105;
int fa[Max];
struct node {
int u,v,w;
};
int find(int x) {
if (fa[x]== x) {
return x;
}
fa[x] = find(fa[x]);
return fa[x];
}
void myunion(int a ,int b){
fa[find(a)] = find(b);
}
bool cmp(node a,node b) {
return a.w<b.w;
}
int main() {
int N;
while (cin>>N) {
if (N == 0) {
break;
}
for (int i=1;i<=N;i++) {
fa[i] = i;
}
int dataline = N*(N-1)/2;
vector<node> nodes;
while (dataline--) {
int u,v,w,state;
cin>>u>>v>>w>>state;
if (state==1) {
myunion(u,v);
continue;
}
if (state==0) {
nodes.push_back({u,v,w});
}
}
int sum = 0;
sort(nodes.begin(), nodes.end(), ...
登录后发布评论
暂无评论,来抢沙发