帆软笔试第2道编程题怎么做
N比赛轮数,K阈值,R评分数组
2^N场比赛 根据评分 评分高的人必胜
要求:评分前两名 决赛对决
评分前四名 半决赛
评分前八名 1/4决赛
。。。
如果对决的差值大于阈值K,则称该场次为势均力敌的比赛
问最多能有多少场势均力敌的比赛?
好难啊🤯 #笔试#
2^N场比赛 根据评分 评分高的人必胜
要求:评分前两名 决赛对决
评分前四名 半决赛
评分前八名 1/4决赛
。。。
如果对决的差值大于阈值K,则称该场次为势均力敌的比赛
问最多能有多少场势均力敌的比赛?
好难啊🤯 #笔试#
全部评论
请问帆软笔试是链接失效前随便找个时间做都行吗?刚收到邮件
刚做完,居然AK了,题目条件是尽量公平,也就是前两名一定进决赛,前四名一定进四强,以此类推。所以可以先排序,降序,每打一轮数组就减少后面一半的人(当然这里数组没有必要真的删掉后一半,遍历的时候每次缩小一半即可),遍历所有轮数(log2N),每一轮枚举前一半和后一半的比赛情况(前一半 * 后一半 O(n2)),看是否小于等于阈值K,这里的枚举可以用到大量的剪枝,因为已经排好序了,第一个剪枝,如果一旦前一半某个数和后一半某个数差值小于K,说明已经匹配好了,ans++,直接退出,枚举前一半下一个元素,第二个剪枝,如果前一半某个数和后一半某个数差值已经大于K了,也直接退出,因为是降序,后一半某个数后面的数只会更小,再和前面的比较更会大于K了,直接退出,我是两个剪枝后就AK了
相关推荐
09-04 20:19
中华女子学院 Java 选择填空题跟后台开发几乎有零个关系,大部分是智力题,只有几个选择题跟计算机有关系,而且我觉得这几个题我应该大部分没啥问题,两道编程题还行都a了,刚交完卷子过了两分钟就收到笔试未通过邮件???有点懵逼了

点赞 评论 收藏
分享