米哈游编程b题
#米哈游#
昨天写的时候写完正解交了之后看都没看就去做c了(因为自己把比较特殊的样例的都测了),交完c时间快到了,就也没回头看,之后和群友聊下来才听说b题要错解才能过。
有没有兄弟知道b写正解能拿多少分
麻了,小丑竟是我自己。
昨天写的时候写完正解交了之后看都没看就去做c了(因为自己把比较特殊的样例的都测了),交完c时间快到了,就也没回头看,之后和群友聊下来才听说b题要错解才能过。
有没有兄弟知道b写正解能拿多少分
麻了,小丑竟是我自己。
全部评论
正解咋写
正解是先把>n的全都敲到n,统计一下这个过程触发了几次天赋的量(假定为spin),然后把没触发过的按照还需要敲多少伤害(假定为a[i])才能触发被动从小到大排个序,从小到大模拟一遍,如果触发天赋的量大于a[i]就跳过,并且spin++,不然的话就需要敲a[i]-spin下,然后再spin++。群友ak的错解是没有前面那个过程,直接按血量从小到大排序,然后一样的模拟。因为最后一定是每个怪都会触发一次天赋,相当于每个怪都会受到n点伤害(可能溢出),所以说对于血量超过n的怪物,hp-n这个量的伤害是必须手动打的,因为这个必要性,所以可以把这个过程看做是没有代价的,而这个没有代价的过程本身可以触发天赋(当n<=hp/2的时候),所以会导致有时候可以少敲排序后的第一下。很简单的一个例子,一共有两个怪,一个hp为1,一个为5,如果用错解的的话答案是4,正解答案是3(直接敲3下5的那个,不需要敲1,而错解按照排序规则,会敲一下1,但是毫无疑问他还是需要敲3下5,因为5最多受到两次天赋伤害)。
样例错了?
相关推荐
点赞 评论 收藏
分享
昨天 10:58
四川大学 Java 点赞 评论 收藏
分享
Java抽象带篮子:直接刚java, 包装下实习经历,可以看看我的帖子
点赞 评论 收藏
分享