首页 / 客观题库

70268 - CSP-J第一轮同测模拟卷1-完善程序2

题目(材料题)

最小生成树给定一个 n 个顶点m 条边的无向连通图,每条边有边权,求最小生成树的总权值。使用 Kruskal 算法,需要实现并查集的查找和合并操作。

 

01 #include <iostream>

02 #include <algorithm>

03 using namespace std;

04

05 struct Edge {

06     int u, v, w;

07 };

08

09 int n, m;

10 Edge edges[10000];

11 int parent[105], rank[105];

12

13 bool cmp(Edge a, Edge b) {

14     return a.w < b.w;

15 }

16

17 int find(int x) {

18     if (parent[x] == x) return x;

19     return ①;

20 }

21

22 void unite(int x, int y) {

23     int rx = find(x), ry = find(y);

24     if (rx == ry) return;

25     if (rank[rx] < rank[ry]) {

26         parent[rx] = ry;

27     } else if (rank[rx] > rank[ry]) {

28         parent[ry] = rx;

29     } else {

30         parent[ry] = rx;

31         ②;

32     }

33 }

34

35 int main() {

36     cin >> n >> m;

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

38         cin >> edges[i].u >> edges[i].v >> edges[i].w;

39     }

40      ③;

41     for (int i = 1; i <= n; i++) {

42         parent[i] = i;

43         rank[i] = 0;

44     }

45     int cnt = 0, ans = 0;

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

47         if (④) {

48             unite(edges[i].u, edges[i].v);

49             ⑤ ;

50             cnt++;

51             if (cnt == n - 1) break;

52         }

53     }

54     cout << ans << endl;

55     return 0;

56 }

||
( 单选 )

①处应填(    )

A parent[x] = find(parent[x])

B parent[x] = x

C find(parent[x])

D parent[parent[x]]

( 单选 )

②处应填(    )

A rank[rx]++

B rank[ry]++

C rank[rx] = rank[ry] + 1

D rank[ry] = rank[rx] + 1

( 单选 )

③处应填(    )

A sort(edges, edges + m, cmp);

B sort(edges, edges + m, cmp());

C sort(edges, edges + m, Edge::cmp);

D sort(edges, edges + m, cmp(edges[i], edges[i+1]) );

( 单选 )

④处应填(   )

A find(edges[i].u) != find(edges[i].v)

B edges[i].u != edges[i].v

C find(edges[i].u) == find(edges[i].v)

D rank[edges[i].u] < rank[edges[i].v]

( 单选 )

⑤处应填(   )

A ans = edges[i].w;

B ans += edges[cnt].w;

C ans = edges[cnt].w;

D ans += edges[i].w;

意见反馈

    最多上传3张图片,格式为JPG、PNG、JPEG,单张不超过5MB

    注册

    发送验证码

    密码必须包含数字、字母和特殊字符

    找回密码

    发送验证码

    密码必须包含数字、字母和特殊字符

    运行 ID:67149

    • 测试点1:Accepted
    • 用时:0 ms
    • 内存:288 kb
    • 测试点2:Accepted
    • 用时:0 ms
    • 内存:288 kb
    输入
    203
    输出
    203

    test

    测评信息

    错误.in文件下载

    错误.out文件下载

    运行 ID:67149

    2019-01-24 15:06:36