[ Source : ]
1437: 校长杯
Font Style:
在南开大学,一年一度的“校长杯”三大球比赛是广大师生必不可少的一次运动大餐。随着南开大学学校规模的扩大和体育事业的发展,参与校长杯赛事的师生越来越多。竞赛采用的是传统的“循环赛”制,即每队的选手都必须和其他各队选手较量一次。为了竞赛日程安排方便,报名的队伍数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 22 1
1 /* 2 功能Function Description: NKOJ-1437 3 开发环境Environment: DEV C++ 4.9.9.1 4 技术特点Technique: 5 版本Version: 6 作者Author: 可笑痴狂 7 日期Date: 20120821 8 备注Notes: 9 就是打印一个循环赛编制安排10 每次从小到大找当前点在同行和同列都没有出现过的编号填充数组11 题目来源: http://acm.nankai.edu.cn/p1437.html12 */13 //真邪恶----竟然没超时14 #include15 int a[550][550];16 int main()17 {18 int k,n,flag,i,j,t,x,y;19 while(scanf("%d",&k)!=EOF)20 {21 n=1<
1 //代码二:---递归(转) 2 /* 3 由人数为k推得人数为2*k时,方阵变为原来的四倍,不仅对角相互对称,而且对角完全相同 4 左上角和右下角对称,左下角和右上角对称,左上角加上表大小的一半可得右上角的元素, 5 而根据对称,可求出整个表. 6 */ 7 #include8 int n,m[1<<8][1<<8]; 9 10 //由左上角得到其他 11 void fun(int size) 12 { 13 int i,j; 14 if(size==n) 15 return; 16 for(i=0;i