问题 4147 --循环比赛日程表

4147: 循环比赛日程表★★

时间限制: 1 Sec  内存限制: 128 MB
提交: 13  解决: 12
[提交][状态][命题人:]

题目描述

设有N个选手进行循环比赛,其中N=2^M,要求每个选手要与其他N-1选手都赛一次,每个选手每天比赛一次,循环N-1填,要求每天没有选手轮空。

输入一个正整数M

输出表格形式的比赛安排表。

一行中各数据间用一个空格隔开。

#include<bits/stdc++.h>
using namespace std;
const int MAXN=1025, MAXM=11;
int a[MAXN][MAXN];
int m;
int main( )
{
	scanf("%d",&m);
	int n=1<<m,k=1,half=1;
	____(1)_____
	while(k<=m)
	{
		for(int i=0;i<half;i++)
		{
			for(int j=0;j<half;j++)
			{  
				a[i][____(2)___]=____(3)_____;
			}
		}
		for(int i=0;i<half;i++)
		{
			for(int j=0;j<half;j++)
			{
				a[i+half][j]=_____(4)_____;
				a[i+half][j+half]=a[i][j];
			}
		}
		_____(5)_____
		k++;
	}
	for(int i=0;i<n;i++)
	{
		for(int j=0;j<n;j++)
		{
			printf("%d ",a[i][j]);
		}
		putchar('\n');
	}
    return 0;
}
 


输入

输出

样例输入
Copy
3
样例输出
Copy
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 

提示

来源

[提交][状态]