循环赛日程表问题

简介: 输入正整数k表示有n=2^k个运动员进行循环比赛,需要设计比赛日程表。每个选手与其他n-1个选手各赛一次;每个选手一天只能赛一次;循环赛一共进行n-1天。按此要求设计一张比赛日程表,该表有n行和n-1列,第i行第j列表示第i个选手第j天遇到的选手。

输入正整数k表示有n=2^k个运动员进行循环比赛,需要设计比赛日程表。每个选手与其他n-1个选手各赛一次;每个选手一天只能赛一次;循环赛一共进行n-1天。

按此要求设计一张比赛日程表,该表有n行和n-1列,第i行第j列表示第i个选手第j天遇到的选手。

分析:

本题的方法有很多,递归是其中一种比较容易理解的方法。 如下图所示是k=3时的一个可行解,它是4块拼起来的。 左上角是k=2时的一组解,左下角是左上角每个数加4得到,而
右上角、 右下角分别由左下角、 左上角复制得到。

递归,每一次分为4个区域来处理。当然,也可以根据上面分析的规律直接模拟填充数组即可。循环k-1次,每一次填充除了左上角之外的另外3个区域。

代码参考:

http://www.cnblogs.com/crx234/p/5988418.html

http://blog.csdn.net/liufeng_king/article/details/8488421

递归的划分过程可以参考残缺棋盘的划分过程。

 

相关文章
|
Java
SpringBoot启动报错:org.apache.catalina.LifecycleException: Protocol handler start failed
SpringBoot启动报错:org.apache.catalina.LifecycleException: Protocol handler start failed
345 0
|
数据可视化
mac环境下graphviz安装及使用
mac环境下graphviz安装及使用
4399 0
mac环境下graphviz安装及使用
|
开发工具 git
git clone TimeOut 无法下载 git 设置代理
git clone TimeOut 无法下载 git 设置代理
453 0
|
缓存 测试技术 编译器
【CMake 疑难解决 】解决find_library查找位置不对的问题
【CMake 疑难解决 】解决find_library查找位置不对的问题
963 3
|
10月前
|
Linux iOS开发 MacOS
硬盘分区怎么做?这几款分区工具新手也能轻松上手
本文介绍了五款实用的硬盘分区工具,满足不同用户需求。Windows用户可使用内置的磁盘管理器或DiskPart命令行工具,简单易上手;DiskGenius功能全面,适合进阶用户进行复杂操作和数据恢复;Mac用户可借助Disk Utility完成基本磁盘管理任务;Linux用户及高级玩家可选择开源工具GParted,支持多种文件系统并具备高度自由度。根据自身需求和技术水平选择合适的工具,可高效完成硬盘分区与管理。
Vuforia专题:设置AR摄像头自动对焦
这篇文章介绍了如何在Vuforia AR应用中设置摄像头自动对焦,以提高摄像头画面清晰度和识别效果,并提供了具体的代码实现步骤。
Vuforia专题:设置AR摄像头自动对焦
|
存储 Java 数据库连接
时序数据库TDengine 3.3.5.0 发布:高并发支持与增量备份功能引领新升级
TDengine 3.3.5.0 版本正式发布,带来多项更新与优化。新特性包括提升 MQTT 稳定性和高并发性能、新增 taosX 增量备份与恢复、支持 JDBC 和 Rust 连接器 STMT2 接口、灵活配置 Grafana Dashboard 等。性能优化涵盖查询内存管控、多级存储迁移、强密码策略等,全面提升时序数据管理的效率和可靠性。欢迎下载体验并提出宝贵意见。
418 5
|
网络协议 数据安全/隐私保护 网络架构
|
存储 算法 搜索推荐
在Neo4j中实现推荐算法
在Neo4j中实现推荐算法
475 7