数据结构

在有n个选手参加的单循环赛中,总共将进行()场比赛。

题目

在有n个选手参加的单循环赛中,总共将进行()场比赛。

如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

为参加网球比赛的选手安排比赛日程。

设有n(n=2k)位选手参加网球循环赛,循环赛共进行n-1天,每位选手要与其他n-1位选手赛一场,且每位选手每天赛一场,不轮空。试按此要求为比赛安排日程。

设n位选手被顺序编号为1,2,…,n。比赛的日程表是一个n行n-1列的表,i行j列的内容是第i号选手第j天的比赛对手。用分治法设计日程表,就是从其中一半选手(2m-1位)的比赛曰程,导出全体(2m位)选手的比赛日程。从只有2位选手的比赛日程出发,反复这个过程,直到为n位选手安排好比赛日程为止。

[C函数]

include<stdio.h>

define MAXN 64

int a[MAxN+1][MAXN];

void main()

{ int twoml,twom,il,j,m,k;

printf("指定n(n=2的k次幂)位选手,清输入k。\n");

scanf("%d",&k);

a[1][1]=2; /*预设2位选手的比赛日程*/

a[2][1]=1;

m=1;twoml=1;

while(m<k){

(1) ;

twoml+=twoml; /*为2m位选手安排比赛日程*/

(2) ;

/*填日程表的左下角*/

for(il=twoml+l;il<=twom;i1++)

for(j=1;j<=twoml-1; j++)

a[i1][J]=a[i1-twoml][j]+twoml;

(3) ;

for(i1=2;i1<=twom;i1++)a[i1][twoml]=a[i1-1][twom1]+l;

for(j=twoml+1;j<twom;j++){

for(i1=1;i1<twoml;i1++) a[i1][j]=a[i1+1][j-1];

(4) ;

}

/*填日程表的右下角*/

for(j=twoml;j<twom;j++)

for(ii=i;i1<=twoml;i1++)

(5) ;

for(i1=1;i1<=twom;i1++){

for(j=1;J<twom;j++)

printf("%4d",a[i1][J]);

printf("\n");

}

printf("\n");

}

}


正确答案:(1) m++ (2) twom+=2*twom1 (3) A[1][twoml]=twom1+1 (4) A[twom1][j]=a[1][j-1] (5) A[a[i1][j][j]=i1
(1) m++ (2) twom+=2*twom1 (3) A[1][twoml]=twom1+1 (4) A[twom1][j]=a[1][j-1] (5) A[a[i1][j][j]=i1 解析:分别有2位、4位、8位选手参加比赛时的日程表。若1~4号选手之间的比赛日程填在日程表的左上角(4行3列),5~8号选手之间的比赛日程可填在日程表的左下角(4行3列),而左下角的内容可由左上角对应项加上数4得到。至此剩下的右上角(4行4列)是为编号小的1~4号选手与编号大的5~8号选手之间的比赛安排日程。程序的思路是:由2位选手的比赛日程得到4位选手的比赛日程;依次得到8位选手的比赛日程。

第2题:

在全市乒乓球比赛中,参加比赛的队伍进行单循环赛,一共赛了28场,问共有几个队参加比赛?

A.6

B.7

C.8

D.9


正确答案:C
单循环赛是指每队均需要和其他参赛队比赛一场,也就是所有的参赛队两两组合,有多少种组合就有多少场比赛。由题意可得,故答案为C。

第3题:

13人进行单循环赛,决出所有名次共有8轮,17场比赛。

此题为判断题(对,错)。


正确答案:×

第4题:

有13个队参加篮球赛,比赛时先分成两组,第一组7个队,第二组6个队,各组都进行单循环赛(即每队都要与本组其他各队比赛一场),然后由各组的前两名共4个队进行单循环赛决定冠军、亚军.共需要比赛()

A.156场
B.78场
C.84场
D.42场

答案:D
解析:

第5题:

阅读下列函数说明和C代码,将应填入(n)外的字句写在对应栏内。

[说明]

为网球比赛的选手安排比赛日程。设有n(n=2m)位选手参加网球循环赛,循环赛共进行n-1天,每位选手要与其他n-1位选手赛一场,且每位选手每天赛一场,不轮空。

设n位选手被顺序编号为1,2,…,n,比赛的日程表是一个n行n-1列的表,第i行j列的内容是第i号选手第j天的比赛对手。用分治法设计日程表,就是从其中一半选手(2m-1位)的比赛日程导出全体2m选手的比赛日程。从众所周知的只有两位选手的比赛日程出发,反复这个过程,直至为n位选手安排好比赛日程为止。

如两位选手比赛日程表如下所示:

如四位选手比赛日程表如下所示:

函数中使用的预定义符号如下:

define M 64

int a[M+1][M];

[函数]

voidd main(){

int twoml,twom,i,j,m,k;

printf("指定n(=2的k次幂)位选手,请输入k:\n");

scanf("%d",&k);

/*8预设两位选手的比赛日程*/

a[1][1] =2;

a[2][1] =1;

m=1;

twoml=1;

while ( (1) ){

m++;

twoml+=twoml;

twom=twoml*2;/*为2^m位选手安排比赛日程*/

/*填日程表的左下角*/

for(i=twoml+1; (2) ;i++){

for(j=1; j<=twoml-1; j++){

a[i][j]=a[i-twoml][j]+twoml;

}

}

/*填日程表的右上角*/

a[1][twoml]= (3) ;/+填日程表右上角的第1列*/

for(i=2; i<=twoml; i++){

a[i][twoml]=a[i-1][twoml]+1;

}

/*填日程表右上角的其他列,参照前一列填当前列*/

for(j=twoml+1; j(twom;j++){

for(i=1; i a[i][j]= (4) ;

}

a[twoml][j]=a[1][j-1];

}

/*填日程表的右下角*/

for(j=twoml; j for(i=1;i<=twoml; i++){

a[ (5) [j]=i;

}

}

/*输出日程表*/

for(i=1; i<=twom; i++){

for(j=1;j printf("%4d",a[i][j]);

}

printf("\n");

}

printf("\n");

}

}

(1)


正确答案:mk
mk 解析:题中已经说明该算法采用的是分治法,“就是从其中一半选手(2m-1位)的比赛日程导出全体2m选手的比赛日程”,再根据注释,不难确定空(1)应填mk。

第6题:

:在一次运动会上,参加羽毛球单打的选手共有181名,比赛规则是单打淘汰,那么要决出冠军,至少需要进行多少场比赛?( )。

A.90

B.9l

C.180

D.181


正确答案:C
每次单打比赛,至多只能淘汰1名选手。现在只允许决出1名冠军,也就是说需要淘汰l80名选手。因此,至少需要180场比赛。

第7题:

某单位职员在健身活动中举行乒乓球比赛,每个选手都要和其他选手各赛一场,一共120场比赛,则该单位参加人数是( )人。

A.18

B.16

C.15

D.14


正确答案:B

第8题:

A,B,C,D,E,F六个队的单循环赛制比赛场次是( )

A.5场

B.12场

C.15场

D.24场


正确答案:C

第9题:

某校举行排球单循环赛(即每队都要与其他各队比赛一场),有8个队参加,共需要举行比赛()

A.16场
B.28场
C.56场
D.64场

答案:B
解析:

第10题:

某单位派甲、乙两名选手组队参加乒乓球比赛,其中甲每场比赛均有40%的可能性获胜,乙每场比赛均有70%的可能性获胜。现安排甲参加1场比赛,乙参加2场比赛,总计获胜2场及以上即可出线。问该单位代表队出线的概率为:

A.48.8%
B.56.4%
C.61.4%
D.65.8%

答案:D
解析:
本题考查概率问题。
此题我们可以从反面求解,求该单位代表队出线的概率,即求获胜2场及以上的概率,我们从反面考虑,用1减去胜1场或0场的概率即可。
①甲乙3场都输的概率为:0.6×0.3×0.3=0.054;
②甲输1场,乙赢1场的概率为:0.6××0.7×0.3=0.252;
③甲赢1场,乙输2场的概率为:0.4×0.3×0.3=0.036;
故所求概率为:1-0.054-0.252-0.036=0.658。
因此,选择D选项。

更多相关问题