正解是先把>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

相关推荐

在打卡的大老虎很想潜...:你在找实习,没啥实习经历,技术栈放前面,项目多就分两页写,太紧凑了,项目你最多写两个,讲清楚就行,项目背景。用到的技术栈、亮点、难点如何解决,人工智能进面太难了,需求少。你可以加最新大模型的东西
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务