赛马问题

64匹马,8个赛道,找出前4名最少比赛多少场

常规解法:8匹马,淘汰后四位

64匹马均分8组,每组淘汰末4位。

每组晋级的4匹马再与其他4匹马组合成8匹马,4组,每组淘汰末4位。

直到决出最后4位,共需8+4+2+1=15场

最优解

1.第一场

均分成8组,淘汰每组最后4位

2.第二场

每组第一比赛,选出全场第一,标记为a1

灰色均淘汰(因为a1>b1,b1>b2>b3,所以b4淘汰)

此时,要从除A1外的9匹马中选出全场第二三四名。

3.第三场

因为只有8条跑道,所以要刨除一匹马。选择刨除d1(因为b1>c1>d1,d1最好的情况为全场第四名,d1的情况取决于c1)

情况1:c1是第3(即c1为全场第四。此时d1不是全场第四),c1是3-7名,d1均不可能是全场第四,全场前四已经产生,无需再比

情况2:c1是第2(d1有可能是全场第四,要再比一场

d1和除b1 c1的其他6匹马,决出全场第四

总结

情况1:8+1+1=10

情况2:8+1+1+1=11

PS:刨除一匹马时也可以选择A4

全部评论
从第一名为根结点构建树 层数在四或以内的都是可能对象 也就可以得出最多10次
点赞 回复 分享
发布于 04-11 17:33 广东

相关推荐

04-11 09:14
已编辑
门头沟学院 Java
感觉问题都好难,还是太菜了#牛客AI配图神器#1、Spring中的@SpringBootApplication注解的原理是什么?由哪些组合注解组成?2、Spring启动过程中需要多少个Bean3、@Component和@Bean的区别是什么?4、Bean的生命周期?5、Bean的作用域有哪些?BeanFactory和FactoryBean有什么区别?6、Spring中最重要的两个概念是什么?(AOP和IOC)7、Spring管理事务的方式有哪些?8、Spring事务中哪些事务传播行为?9、@Transactional的实现原理?10、Java有开发框架了解哪些?11、Hibernate了解过嘛?使用场景?12、Java中的Socket编程有了解过嘛?13、Lua脚本有了解过嘛?有哪些注意事项?缺点是什么?14、常见的线程池有哪些?15、线程池的执行原理?16、ThreadLocal的实现原理,需要注意什么?缺点是什么?17、JUC包知道哪些?怎么使用?18、ConcurrentHashmap了解过嘛?扩容机制呢?19、ConcurrentHashmap实现原理是什么?并发机制是什么?20、SQL和noSQL的优缺点分别是什么?21、Mysql中有哪些索引,场景分别是什么?22、在哪些场景下使用过redis?23、Redis怎么保证与Mysql数据一致性?24、除了Redis还有哪些noSQL?25、Mongodb是什么?优缺点?26、Gradle是什么?怎么使用?使用场景?27、关心过业务系统里面的sql耗时嘛?统计过慢查询嘛?对慢查询都是怎么优化的?28、Mysql中模糊查询的%和_的区别?29、MySQL中的binlog知道原理嘛?30、项目中怎么去进行SQL调优?31、多线程中哪些参数?start()和run()的区别是什么?32、Volatile和synchronized的区别是什么?
点赞 评论 收藏
分享
评论
1
17
分享

创作者周榜

更多
牛客网
牛客企业服务