Notice: Undefined index: name in /usr/www/lib/views/home/viewtitle.html on line 188
-阅读程序 第 17 题
#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 题 (1分)输入的a和b值应在[0, n-1]的范围内。()
第 2 题 (1分)第16行改成“ fa[i] = 0;”,不影响程序运行结果。()
第 3 题 若输入的a和b值均在[0, n-1]的范围内,则对于任意0<=i
第 4 题 若输入的a和b值均在[0, n-1]的范围内,则对于任意0<=i
● 单选题
第 5 题 当n等于50时,若a、b的值都在[0,49]的范围内,且在第25行时x 总是不等于y,那么输出为()。
第 6 题 此程序的时间复杂度是()。
A. $O(n)$
B. $O(logn)$
C. $O(n^2)$
D. $O(nlogn)$

解答部分以后会开放。