3103 - 循环赛日程表

通过次数

4

提交次数

9

时间限制 : 1 秒
内存限制 : 128 MB

n=2^k个运动员要进行网球循环赛。现设计一个满足以下要求的比赛日程表:

(1)每个选手必须与其他n-1个选手各赛一次,

(2)每个选手每天只能赛一次,

(3)循环赛一共进行n-1天。

试设计算法,给出日程表。

输入

一个正整数n。

输出

一个n\times n的矩阵。第一行表示第1个运动员在第1、第2、第3。。。天的比赛对象。 数字之间用空格隔开。特别注意每一行末尾不要添加多余空格。 (本题测试例为《计算机算法设计与分析》王晓东著中2.11小节的测试数据。本题解法有很多,这里只给出其中一种。)

样例

输入

8

输出

1 2 3 4 5 6 7 8
2 1 4 3 6 5 8 7
3 4 1 2 7 8 5 6
4 3 2 1 8 7 6 5
5 6 7 8 1 2 3 4
6 5 8 7 2 1 4 3
7 8 5 6 3 4 1 2
8 7 6 5 4 3 2 1

来源

分治专题