题库 信息学奥赛题库 题目列表 #include <iostream>using namespace std;const...
组合题

#include <iostream>

using namespace std;


const int maxn = 1000;

int n;

int fa[maxn], cnt[maxn];


int getRoot(int v) {

    if (fa[v] == v) return v;

    return getRoot(fa[v]);

}


int main() {

    cin >> n;

    for (int i = 0; i < n; ++i) {

        fa[i] = i;

        cnt[i] = 1;

    }

    int ans = 0;

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

        int a, b, x, y;

        cin >> a >> b;

        x = getRoot(a);

        y = getRoot(b);

        ans += cnt[x] * cnt[y];

        fa[x] = y;

        cnt[y] += cnt[x];

    }

    cout << ans << endl;

    return 0;

}

判断题

(1 分)输入的 a 和 b 值应在 [0,n−1]的范围内。()

(1 分)第 16 行改成 fa[i] = 0;,不影响程序运行结果。()

若输入的 a 和 b 值均在 [0,n−1] 的范围内,则对于任意 0≤i<n 都有 

0≤fa[i]<n ()

若输入的 a 和 b 值均在 

[0,n−1] 的范围内,则对于任意 0≤i<n 都有 1≤cnt[i]≤n ()

选择题

当 n 等于50时,若 a,b 的值都在 [0,49] 的范围内,且在第 25 行时 

x 总是不等于 y,那么输出为()。

此程序的时间复杂度是()。

第1题 判断
A.
正确
B.
错误
第2题 判断
A.
正确
B.
错误
第3题 判断
A.
正确
B.
错误
第4题 判断
A.
正确
B.
错误
第5题 单选
A.

1276

B.

1176

C.

1225

D.

1250

第6题 单选
A.

O(n)

B.

O(logn)

C.

O(n2)

D.

O(nlogn)

题目信息
2019年 初赛
-
正确率
0
评论
54
点击