大疆校招测评题--循环赛问题

笔者在2022.7参加了大疆的测评题。

其中有道循环赛问题,记录下解题思路。

循环赛问题

六名选手A, B, C, D, E, F进行循环赛。

每两名选手间比赛一次,每名选手每天比赛一场。

五天内完成循环赛。

已知:

        第一天C赢了F,

        第二天A赢了B,

        第三天C败给D,

        第四天A赢了F,D败给E

求:这五天的赛程安排。

 解题思路

        “每名选手每天比赛一场”,说明一天内ABCDEF都有比赛,总共三场比赛,只是对手组合不同。比如[AB,CD,EF]是一种情况,[AC,BE,DF]是另外一种情况。

        “每两名选手间比赛一次”,比如出现了AB,那么剩下的赛程里肯定没有AB。

        这两点,类似数独中,每行都要有1~9,但同一行中不能有重复数字。可以用数独的思路做。

解题步骤

        题目已知条件构建初始状态:(CF表示C与F的比赛)

第一天CF
第二天AB
第三天CD
第四天AFDE
第五天

        因为第四天已经有ADEF的比赛了,那么剩下一场比赛一定是BC,填入表格:   

第一天CF
第二天AB
第三天CD
第四天AFDEBC
第五天

        接下来看第三天的比赛,CD已有比赛,则从ABEF中安排两场比赛。因为AB,AF已存在,则A只能跟E打比赛,即AE,剩下一场为BF,填入表格:

第一天CF
第二天AB
第三天CDAEBF
第四天AFDEBC
第五天

        同理,推导出第二天的赛程为CEDF,第一天的赛程为ADBE

第一天CFADBE
第二天ABCEDF
第三天CDAEBF
第四天AFDEBC
第五天

        还未两两比赛的组合ACBDEF,填到第五天,得到最终的赛程表:

第一天CFADBE
第二天ABCEDF
第三天CDAEBF
第四天AFDEBC
第五天ACBDEF

        问题求解完成。

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值