今天米哈游笔试的第二题黑塔出了严重的错误
如题所示,首先,题目就写的非常谜语。题目只讲了被转圈圈打到的敌人第一次血量小于等于一半的情况下会继续触发转圈圈,但是没有描述同时有多个敌人第一次血量小于等于一半时会触发一次还是多次。
其次,std锅了。这是我非常有底气说出来的,因为我卡了1个半小时,给我选择题都差点来不及做,但是我猜出了std是咋做的,然后我才过去。
std就猜了个结论,血量从小到高排序,依次触发转圈圈。但是这合理吗?
我们来随便造组数据:
2
2 4
这个时候,std会输出3,实际上应该是2。
是的,std就是这么写的:
给读入的血量排序,依次触发。
但是这是不合理的,正解应该是先把血量大于n的修到n,然后按距离半血的伤害排序,依次触发即可。
而我写完合理的正解后,喜提23.333%
我当时就认为,会不会我题意理解错了,同时有多个敌人第一次血量小于等于一半时只会触发一次,然后写写写,写完了,喜提6.667%。
事后冷静了一段时间,如果只触发一次,这题就不是面试题难度了,我猜测在cf2200分左右,然后就开始猜测题目锅了。
一开始以为是数据不严谨,结果边界都检查了,longlong都开了,还是23.333%。
我看着30分钟,选择没做,血压拉满了,开始质疑std,猜std写错了,然后一发过了。
我血压拉满了。
希望厂商出题的时候最好多来点人验题,这很难做到吗?
其次,std锅了。这是我非常有底气说出来的,因为我卡了1个半小时,给我选择题都差点来不及做,但是我猜出了std是咋做的,然后我才过去。
std就猜了个结论,血量从小到高排序,依次触发转圈圈。但是这合理吗?
我们来随便造组数据:
2
2 4
这个时候,std会输出3,实际上应该是2。
是的,std就是这么写的:
给读入的血量排序,依次触发。
但是这是不合理的,正解应该是先把血量大于n的修到n,然后按距离半血的伤害排序,依次触发即可。
而我写完合理的正解后,喜提23.333%
我当时就认为,会不会我题意理解错了,同时有多个敌人第一次血量小于等于一半时只会触发一次,然后写写写,写完了,喜提6.667%。
事后冷静了一段时间,如果只触发一次,这题就不是面试题难度了,我猜测在cf2200分左右,然后就开始猜测题目锅了。
一开始以为是数据不严谨,结果边界都检查了,longlong都开了,还是23.333%。
我看着30分钟,选择没做,血压拉满了,开始质疑std,猜std写错了,然后一发过了。
我血压拉满了。
希望厂商出题的时候最好多来点人验题,这很难做到吗?
全部评论
我也是这个思路,就是过不去
我写了两种做法 先盯着没触发被动的低血打和没触发被动的高血打最后min一下 但是也过不了 1 2 3这个样例就要先打低血吧
我想的是先打血量大于等于2n的到n,因为这些打了后一定会触发一次,而且这些必须打,打完了之后有些大于n但是小于2n的有可能变成n以下,总之就是非常复杂,没有想到很好的解法就跳了
对,就是题目出错了,我一开始也写了正解没过,然后猜了一下std错在哪就过了
2200不至于,但是本来应该1800左右,锅了就1500了
相关推荐
10-18 13:02
西安理工大学 C++ 点赞 评论 收藏
分享