NK1437(循环日程表)

简介: 1437: 校长杯 Time Limit: 1500 ms    Memory Limit: 32000 kB   Judge type: Multi-cases Special JudgeTotal Submit : 110 (53 users)   Accepted Submit : 67 (47 users)   Page View : 3975  Font Style: Aa Aa Aa         在南开大学,一年一度的“校长杯”三大球比赛是广大师生必不可少的一次运动大餐。

1437: 校长杯


Time Limit: 1500 ms    Memory Limit: 32000 kB  
Judge type: Multi-cases Special Judge
Total Submit : 110  (53 users)    Accepted Submit : 67  (47 users)    Page View : 3975 
Font Style: Aa Aa Aa

        在南开大学,一年一度的“校长杯”三大球比赛是广大师生必不可少的一次运动大餐。随着南开大学学校规模的扩大和体育事业的发展,参与校长杯赛事的师生越来越多。竞赛采用的是传统的“循环赛”制,即每队的选手都必须和其他各队选手较量一次。为了竞赛日程安排方便,报名的队伍数n都将是2的k次幂,(0<k<9,且k为自然数)。为了避免参赛师生过于疲劳,竞赛安排每支队伍每天只比赛一次。同时,竞赛一共进行(n-1)天。
      现在,竞赛组委会想请你帮忙设计一个循环赛的日程表,使得竞赛的日程安排满足上述要求。

Input

输入只有一个数k。

Output

请输出一个n行,每行有n个正整数的循环赛日程表。相邻的两个正整数用一个空格隔开。
其中,第i行(0<i<n+1)表示第i队的参赛日程,第1个正整数为i,表示参赛队的队号,后面的(n-1)个正整数表示该队在参赛日程中,依次较量的队号。

Sample Input

1

Sample Output

1 2
2 1
#include<stdio.h>
int n,m[1<<8][1<<8];
//由左上角得到其他 
void fun(int size)
{
	int i,j,k;
	if(size==n) return;
	for(i=0;i<size;++i)
		for(j=0;j<size;++j)
			m[i+size][j+size]=m[i][j];
	for(i=0;i<size;++i)
		for(j=size;j<2*size;++j)
        {
			m[i][j]=m[i][j-size]+size;
			m[j][i]=m[i][j-size]+size;
		}
	fun(size*2);
}
int main()
{
	int i,j,k;
	while(~scanf("%d",&k))
    {
		n=1<<k;
		m[0][0]=1;
		fun(1);
		for(i=0;i<n;++i)
        {
			for(j=0;j<n-1;++j)
				printf("%d\t",m[i][j]);
			printf("%d\n",m[i][j]);
		}
	}
}

 

目录
相关文章
|
5月前
leetcode代码记录(最长连续递增序列
leetcode代码记录(最长连续递增序列
35 2
|
5月前
|
算法 测试技术 C++
【数论】【分类讨论】【C++算法】1611使整数变为 0 的最少操作次数
【数论】【分类讨论】【C++算法】1611使整数变为 0 的最少操作次数
|
算法
【算法挨揍日记】day06——1004. 最大连续1的个数 III、1658. 将 x 减到 0 的最小操作数
1004. 最大连续1的个数 III 题目描述: 给定一个二进制数组 nums 和一个整数 k,如果可以翻转最多 k 个 0 ,则返回 数组中连续 1 的最大个数 。
403 1
数列中,第一项为3,后一项都比前一项的值增5。下列给定程序中,函数fun的功 能是:计算前n(4≤n≤50)项的累计和。在累加过程中把那些被4除后余2的当前累 加值放入数组中
数列中,第一项为3,后一项都比前一项的值增5。下列给定程序中,函数fun的功 能是:计算前n(4≤n≤50)项的累计和。在累加过程中把那些被4除后余2的当前累 加值放入数组中
【八月】 每日一题 - 768. 最多能完成排序的块 I and II
【八月】 每日一题 - 768. 最多能完成排序的块 I and II
91 0
【八月】 每日一题 - 768. 最多能完成排序的块 I and II
|
存储 机器学习/深度学习 人工智能
【Python 百练成钢】DNA、蛇形矩阵、Huffuman树、K-进制数、K倍区间、交换瓶子、第几个幸运数、四平方和、The 3n + 1 problem、大数乘法
【Python 百练成钢】DNA、蛇形矩阵、Huffuman树、K-进制数、K倍区间、交换瓶子、第几个幸运数、四平方和、The 3n + 1 problem、大数乘法
283 0
【Python 百练成钢】DNA、蛇形矩阵、Huffuman树、K-进制数、K倍区间、交换瓶子、第几个幸运数、四平方和、The 3n + 1 problem、大数乘法
用c/c++代码求解时分秒针重合次数
用c/c++代码求解时分秒针重合次数
PAT1008数组元素循环右移问题(2,3测试点不过的解决办法)
PAT1008数组元素循环右移问题(2,3测试点不过的解决办法)
108 0
|
定位技术
【CCCC】L3-005 垃圾箱分布 (30分),Dijkstra跑n遍 = 多源最短路
【CCCC】L3-005 垃圾箱分布 (30分),Dijkstra跑n遍 = 多源最短路
140 0