设有n=2k个选手参加比赛,要求设计一个满足一下要求的比赛日程表:
(1)每个选手必须与其他的n-1个选手个比赛一次;
(2)每个选手每天只能赛一次 。
按此要求可以把比赛日程表设计成一个n行n-1列的二维表,其中第i行第j列表示第i个选手在 第j天比赛的选手。
代码:(分治策略)
1 #include2 #include 3 4 void gametable(int k) 5 { 6 int a[100][100]; 7 int n,temp,i,j,p,t; 8 n=2;//k=0两个参赛选手日程可以直接求得 9 a[1][1]=1;a[1][2]=2;10 a[2][1]=2;a[2][2]=1;11 for(t=1;t 0):\n");40 scanf("%d",&k);41 if(k!=0)42 gametable(k);43 44 }