#1286. 循环赛问题
循环赛问题
问题描述
具体描述见教材p211: 设有n个选手的网球循环比赛,其中n=2m。现要设计一个满足以下条件的比赛日程表: (1)每名选手要与其他n-1名选手都进行一次比赛; (2)每名选手每天只比赛一次; (3)整个比赛共进行n-1天,要求每天没有选手轮空。
格式
输入
选手人数n(n<=100)
输出
N阶方阵A[1..n, 0..n-1],当a[i,j]表示第i名运动员在第j天所遇到的比赛对手(A[i,0]=i)。
样例
4
1 2 3 4
2 1 4 3
3 4 1 2
4 3 2 1
【解析】 当见到是2的几次方时,就要有分治的意思,因为2的几次方可以无限地被2分。如样例,8个人在一起打安排赛事。前4个人在一起打安排赛事和后四个个人安排赛事, 本质上都是4个人一起打,只是他们的编号不同;可以这样想:把8个人分成两个赛区,各个赛区相互打完后再交换过来打,同样,分成的两个赛区,又可以重新分成若干赛区,再互相打。
限制
1s, 64MB.