测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A30324. 下面最小生成树的Kruskal算法程序中,横线处应该填入的是( )。include <iostream>#include <vector>#include <algorithm>using namespace std;struct Edge { int u, v, weight; bool operator <(const Edge & other) const { return weight …

单选题 困难

题目描述

下面最小生成树的Kruskal算法程序中,横线处应该填入的是(     )。

include <iostream>

#include <vector>

#include <algorithm>

using namespace std;

struct Edge {

int u, v, weight;

bool operator <(const Edge & other) const {

return weight < other.weight;

}

}

;

int findParent(int vertex, vector<int> & parent) {

if (parent[vertex] == -1)

return vertex;

return parent[vertex] = findParent(parent[vertex], parent);

}

int main() {

int n, m;

cin >> n >> m;

// n: 顶点数, m: 边数

vector<Edge> edges(m);

vector<int> parent(n, -1);

int totalWeight = 0;

for (int i = 0; i < m; i++)

cin >> edges[i].u >> edges[i].v >> edges[i].weight;

sort(edges.begin(), edges.end());

for (const auto & edge : edges) {

int uParent = findParent(edge.u, parent);

int vParent = findParent(edge.v, parent);

if (__________) {

// 在此处填入选项

parent[uParent] = vParent;

totalWeight += edge.weight;

}

}

}

选项(单选)

上一题 下一题