阅读程序(2)
7-12题 组合题
#include <cstdio> using namepace 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; }
输入的a和b值应在[0,n-1]的范围内。( )
正确
错误