#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 分)第 16 行改成 fa[i] = 0;,不影响程序运行结果。()
若输入的 和 值均在 的范围内,则对于任意 都有 ()
若输入的 和 值均在 的范围内,则对于任意 都有 ()
当 等于50时,若 的值都在 的范围内,且在第 行时 总是不等于 ,那么输出为()。
此程序的时间复杂度是()。