正解是先把>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最多受到两次天赋伤害)。
点赞 7

相关推荐

11-23 15:14
中原工学院 Java
程序员花海_:实习和校招简历正确格式应该是教育背景+实习+项目经历+个人评价 其中项目经历注意要体现业务 实习经历里面的业务更是要自圆其说 简历模板尽可能保持干净整洁 不要太花哨的
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务