选择题难度不大,虽然该不会的就是不会结束后放代码和题解t1 依次遍历每一项的距离,维护一个最小距离和结果,如果小于当前则更新,等于则取平均数83%的情况,有可能是最后四舍五入的问题?我刚开始好像也遇到了这个问题,但是是elif里面写了个bug,并且需要注意需要将整数转正float类型freq = int(input())split = input().strip().split(',')mx = 10**9res = 0for s in split:f, l = list(map(float, s.split(':')))if abs(freq - f) < mx:mx = abs(freq - f)res = lelif abs(freq - f) == mx:res = (res + l) / 2print(round(res, 1))t2 将任务按 执行结束后的剩余电量、起始电量 进行排序,然后计算MX = 4800task = []least = 0for s in input().strip().split(','):task.append(list(map(int, s.split(':'))))least += task[-1][0]task.sort(key=lambda x:(-max(x[1] - x[0], 0), x[1]))now = res = leastfor cost, start in task:d = max(cost, start) - nowif d > 0:res += dnow += dnow -= costprint(res if res <= MX else -1)