#include <iostream>
#include <vector>
#include <queue>
using namespace std;
typedef struct edge{
int st,ed;
int w;
bool used;
bool operator<(const struct edge& b) const{
return this->w < b.w;
}
}edge;
typedef struct vertex{
int pos;
int ed;
}vertex;
int main(){
int n,m;
cin>>n>>m;
vector<edge>edges(m);
vector<vector<vertex>>vs(n);
priority_queue<edge> pq;
int *eds = new int[n];
for(int i = 0; i < m; i++){
cin>>edges[i].st>>edges[i].ed>>edges[i].w;
pq.push(edges[i]);
bool used = false;
}
for(int i = 0; i < m; i++){
edge edge_buffer = pq.top();
pq.pop();
if(eds[edge_buffer.ed] != eds[edge_buffer.st]){
vertex new_vertex1, new_vertex2;
new_vertex1.ed = edge_buffer.ed, new_vertex1.pos = edge_buffer.st;
new_vertex2.ed = edge_buffer.st, new_vertex2.pos = edge_buffer.ed;
if(!eds[edge_buffer.ed]){
eds[edge_buffer.st] = eds[edge_buffer.ed];
}
else{
eds[edge_buffer.ed] = edge_buffer.st;
}
if(!eds[edge_buffer.st]){
eds[edge_buffer.ed] = eds[edge_buffer.st];
}
else{
eds[edge_buffer.st] = edge_buffer.ed;
}
}
}
return 0;
}
1111111
最新推荐文章于 2025-05-13 15:54:58 发布