下面 Kruskal 最小生成树程序中,横线处应填入:
struct Edge { int u, v, weight;
bool operator <(const Edge & o) const { return weight < o.weight; } };
int findParent(int x, vector<int> & p) {
if (p[x] == -1) return x;
return p[x] = findParent(p[x], p);
}
// ... sort(edges) 后:
for (const auto & edge : edges) {
int uParent = findParent(edge.u, parent);
int vParent = findParent(edge.v, parent);
if (__________) { // 在此处填入选项
parent[uParent] = vParent;
totalWeight += edge.weight;
}
}
- A. uParent == vParent
- B. uParent >= vParent
- C. uParent != vParent
- D. uParent <= vParent
正确答案:C