算法设计与分析 | 循环赛

news/2024/6/17 15:12:47 标签: 算法, 开发语言

题目
设有n=2k个球队参加循环赛,要求设计一个满足以下要求比赛日程表:

(1)  每支球队必须与其他n-1支球队各赛一次;

(2)  每支球队一天只能参赛一次;

(3)  循环赛在n-1天内结束。

输入
一个整数k(0 <= k <=  6)
输出

输出一个n行n列的表,在表中的第i行,第j列处填入为第i个球队在第j天所遇到的球队。8个球队的比赛日程如样例输出所示

样例输入

3

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

分析

该题主要要观察它的输出规律,因为左上角的【1 2 2 1】和右上角的【3 4 4 3】,左下角的【3 4 4 3】,右下角的【1 2 2 1】,右上角和左下角的都是在以左上角的数字的基础上+2,而右下角是copy左上角的数字。

代码

//循环赛
#include<stdio.h>
#include<math.h>
int main()
{
	//定义二维数组
	int s[64][64] = { 0 };
	int i=0, j=0;
	int inial = 2, c=0,b=0;
	scanf("%d", &b);
	int t=0;
	s[0][0] = 1, s[0][1] = 2;
	s[1][0] = 2, s[1][1] = 1;
	for (i = 1; i < b; i++)
	{
		c = inial;
		inial = inial * 2;
		//左下角:把左上角的数字加c
		for (t = c; t < inial; t++)
		{
			for (j = 0; j < inial; j++)
				s[t][j] = s[t - c][j] + c;
		}
		//右上角:把左上角的数字加c
		for (t = 0; t < inial; t++)
		{
			for (j = c; j < inial; j++)
				s[t][j] = s[t][j - c] + c;
		}
		//右下角:把左上角的数字copy给右下角
		for (t = c; t < inial; t++)
		{
			for (j = c; j < inial; j++)
				s[t][j] = s[t - c][j - c];
		}
	}
	for (i = 0; i < pow(2, b); i++) {
		
		for (j = 0; j < pow(2, b); j++) {
				printf("%d ", s[i][j]);
		}
		printf("\n");
				
	}	
}

http://www.niftyadmin.cn/n/5165578.html

相关文章

小白高效自学-网络安全(黑客技术)

网络安全零基础入门学习路线&规划 初级 1、网络安全理论知识&#xff08;2天&#xff09; 了解行业相关背景&#xff0c;前景&#xff0c;确定发展方向。 学习网络安全相关法律法规。 网络安全运营的概念。 等保简介、等保规定、流程和规范。&#xff08;非常重要&#x…

《面纱》细嚼的句子

记住&#xff0c;履行职责并不值得称道 因为那是你应该做的&#xff0c;就像手脏了该洗手一样。唯有一点颇为重要&#xff0c;那就是爱你的职责。当爱和职责合而为一时&#xff0c;上天就会降恩典于你&#xff0c;让你享受到你连想都不敢想的无边的幸福。——《面纱》 所谓“道…

springcloud小说阅读网站源码

开发工具&#xff1a; 大等于jdk1.8&#xff0c;大于mysql5.5&#xff0c;nodejs&#xff0c;idea&#xff08;eclipse&#xff09;&#xff0c;vscode&#xff08;webstorm&#xff09; 技术说明&#xff1a; springcloud springboot mybatis vue elementui 功能介绍&…

Windows 有趣功能集锦

Windows 有趣功能集锦 隐藏文件或文件夹 CMD 运行以下命令隐藏 # attrib h <文件或文件夹名称> attrib r h s a 测试显示 # attrib h <文件或文件夹名称> attrib -r -h -s -a 测试使视频显示为图片 准备一个视频文件和一个需要显示的图片先将视频压缩成压缩文…

面试分享 | 护网蓝队面试经验

关于蓝队面试经验 1.自我介绍能力 重要性 为什么将自我介绍能力放在第一位&#xff0c;实际上自我介绍才是面试中最重要的一点&#xff0c;因为护网面试并没有确定的题目&#xff0c;让面试官去提问 更多是的和面试官的一种 “交谈” &#xff0c;面试的难易程度也自然就取决…

驾考在线答题系统源码:含PC+手机版驾考宝典多题库

安装说明&#xff1a; 1、上传到网站根目录 2、用 phpMyadmin 导入数据库文件 db.sql 3、修改数据库链接文件 /ThinkPHP/Conf/convention.php# &#xff08;记得不要用记事本修改&#xff0c;否则可能会出现验证码显示不了问题&#xff0c;建议用 Notepad 4、 帐号 admin 密码…

猫罐头怎么选?千万别错过这5款好吃放心的猫罐头推荐!

猫罐头不仅美味可口&#xff0c;而且营养丰富&#xff0c;是专为猫咪打造的美食。那么&#xff0c;猫罐头怎么选&#xff1f;作为一位经营宠物店7年的店长&#xff0c;我对猫猫的饮食都非常重视&#xff0c;也见证了很多猫咪品尝各种猫罐头的瞬间&#xff0c;现在我对各个品牌的…

Python 函数定义详解(More on Defining Functions)- 默认参数/位置参数/关键字参数

1.函数的定义和调用方法 1.1函数定义方法 """def 关键字用来定义一个函数。function_name 是函数名&#xff0c;应遵循命名规范。parameter1, parameter2, ... 是函数的参数列表&#xff0c;可以是任意数量和类型的参数。函数体是用缩进&#xff08;通常为4个…