题库 信息学奥赛题库 题目列表 2019年CSP-S1提高组初赛阅读程序题:#include &l...
组合题

2019年CSP-S1提高组初赛阅读程序题:

#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题 判断

输入的ab值应在[0n-1]的范围内。( ) 

A.
正确
B.
错误
第2题 判断

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

A.
正确
B.
错误
第3题 判断
若输入的a和b值均在[0, n-1]的范围内,则对于任意0≤i<n,都有0≤fa[i]<n。( )
A.
正确
B.
错误
第4题 判断
若输入的a和b值均在[0,n-1]的范围内,则对于任意≤i<n,都有≤cnt[i] ≤n。( )
A.
正确
B.
错误
第5题 单选
当n等于50时,若a、b的值都在[0,49]的范围内,且在第25行时总是不等于y,那么输出为( ) 
A.

1276

B.

1176

C.

1225

D.

1250

第6题 单选

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

A.

O(n)

B.

O(log n)

C.

O(n^2) 

D.

O(n log n)

题目信息
阅读程序 初赛 2019年
-
正确率
0
评论
195
点击