题型:组合题
#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;
}
(1).(1分)第16行改成“fa[i]=0;”, 不影响程序运行结果。( )
| A.正确 | B.错误 |
(1分)输入的a和b值应在[0,n-1]的范围内。( )
| A.正确 | B.错误 |
若输入的a和b值均在[0, n-1]的范围内,则对于任意0≤i<n,都有0≤fa[i]<n。( )
| A.正确 | B.错误 |
当n等于50时,若a、b的值都在[0,49]的范围内,且在第25行时x总是不等于y,那么输出为( )
| A. 1276 |
B. 1176 |
| C. 1225 |
D. 1250 |
此程序的时间复杂度是( )
| A. O(n) |
B. O(log n) |
| C. O(n^2) |
D. O(n log n) |
若输入的a和b值均在[0,n-1]的范围内,则对于任意0≤i<n,都有1≤cnt[i] ≤n。( )
| A.正确 | B.错误 |
更新时间:2022-12-07 15:50:06
|
【知识点】
CCF非专业级别软件能力认证CSP-S/提高级
抱歉! 您未登录, 不能查看答案和解析点击登录












