JakeLin-[蓝桥杯][算法训练VIP]比赛安排-题解

本文介绍了一种用于安排2^n个球队进行单循环比赛的算法,确保每个队伍在2^n–1天内与其他所有队伍各比赛一次。通过使用vis和viss数组跟踪已进行的比赛,避免重复配对,实现高效比赛调度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目描述

设有有2^n(n<=6)个球队进行单循环比赛,计划在2^n–1天内完成,每个队每天进行一场比赛。设计一个比赛的安排,使在2^n–1天内每个队都与不同的对手比赛。 

输入

共一行,输入n的数值。 

输出

共(2^n  –  1)行,第i行输出第i天的比赛安排。 
格式为:<i> A-B C-D 其中i是天数,A,B分别为比赛双方的编号,每行共2n-1个比赛场次。 

样例输入

2 

样例输出

<1>1-2 3-4
<2>1-3 2-4
<3>1-4 2-3 

原题链接:[蓝桥杯][算法训练VIP]比赛安排

思路:
以n=3为例,总共8个人,7天,那么第一列必是1和另外七个人打。
后面的还没打过的两两一组,但是注意如果他们俩前些日子打过了,就不要安排他们一起打了,所以用到viss数组记录谁跟谁打过
【采用链表遍历的思想,但是这里直接判断】

两个vis数组变量说明:

名称 作用
vis[100] 贯穿一行,vis[j]表示这一天中j已经打过了,请不要再安排他
viss[100] 贯穿整个程序,viss[i][j] 表示“i-j”已
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值