← 查看本卷题目
组合题6 个小题
已作答 0 / 6
#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;}
第24题判断题原卷 1.5 分

若输入的 aa 和 bb 值均在 [0,n−1][0, n-1] 的范围内,则对于任意 0≤i<n0\leq i<n 都有 0≤fa[i]<n0 \leq fa[i] <n ()

填写答案