Problem E: [CSP-S1][程序阅读] 程序阅读10
Memory Limit:128 MB
Time Limit:1.000 S
Judge Style:Text Compare
Creator:
Submit:80
Solved:6
Description
struct Edge { int u, v, w; }; bool cmp(Edge a, Edge b) { return a.w < b.w; } int kruskal(int n, vector<Edge> edges) { sort(edges.begin(), edges.end(), cmp); init(n); // 并查集初始化 int res = 0, cnt = 0; for (Edge e : edges) if (find(e.u) != find(e.v)) { merge(e.u, e.v); res += e.w; if (++cnt == n-1) break; } return cnt == n-1 ? res : -1; } |
判断题
1. 若图不连通,返回-1。( )
2. 边排序是贪心选择的关键。( )
3. `cnt`统计的是边数而非顶点数。( )
4. 若存在重边,算法可能选择多条同权边。( )
5. 时间复杂度为O(E log E)。( )
选择题
6. 对于树`1-2-3`(边权1,2),返回值是:
A. 1 B. 2 C. 3 D. -1
7. 若所有边权相同,MST的边权总和是:
A. (n-1)*w B. n*w C. E*w D. 无法确定
8. 若`edges`为空且n>1,返回值是:
A. 0 B. -1 C. 1 D. 未定义
9. 若`merge`中未按秩合并,可能导致:
A. 错误结果 B. 时间复杂度退化 C. 无法处理重边 D. 无影响
10. 判断MST是否唯一需检查:
A. 是否存在相同权值的边 B. 是否存在割边
C. 是否存在环 D. 无法判断