问个问题
  • 板块学术版
  • 楼主卷王慢即快
  • 当前回复8
  • 已保存回复8
  • 发布时间2022/8/9 15:11
  • 上次更新2023/10/27 16:17:38
查看原帖
问个问题
494699
卷王慢即快楼主2022/8/9 15:11
#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;
}

nn 等于 5050 时,若 a,ba,b 的值都在 [0,49][0,49] 的范围内,且在第 2525 行时 xx 总是不等于 yy,那么输出为()。

A. 12761276

B. 11761176

C. 12251225

D. 12501250

此题为初赛题,并且答案是C,问一下这个程序代表啥意思?

2022/8/9 15:11
加载中...