我是个臭弟弟,只做了第一题还没有全过。。。
第一次写CSDN,给后来人留点东西。。。
言归正传。
第一题
题目:
勇士打怪
假设勇士能力值为a
每个怪兽也有能力b
如果勇士的能力值大于等于怪兽得能力值,则勇士可以消灭怪兽获得1金币
勇士随时可以花费1金币使自己的能力值提高1
输入如下:
a,n
A[i]
1 3
1 2 2
含义:勇士能力值a为1,有3个怪兽,每个怪兽的能力存在A[i]中
求勇士能获得的最大金币数,怪兽可以不打完。
对以上输入,输出为2,代表勇士能获得的最大金币数为2。
下面是我自己对该问题的 提交代码
,但是通过率为90%还不知道哪里出了问题。
//不常用标准输入输出感觉有点蠢。。。
整体思路如下:
勇士当前能力值能获得的最大金钱
也就是找到勇士能获得的最大能力值
循环为能力值从初始值到最大能力值
找到每个能力值下能获得的最大金钱:
使用bisect包中的bisect_right(),对所有怪兽能力排序后
可直接获取该能力下能获得的最大金钱
再减去升到该能力值的花费即可
最终输出每个能力值下能获得的最大金钱的最大值
最后90%通过没想到哪里出了问题。。大佬们请指教
// An highlighted block
import sys
import bisect
if __name__ == "__main__":
# 读取第一行的a,n
line0 = sys.stdin.readline().strip()
aa = list(map(int,line0.split()))
a=int(aa[0])
n=int(aa[