关注
今天小马的第三题:dp 以及 deque 都可以做;我贴一下今天dp的垃圾code吧 if __name__ == '__main__':
s1 = input().split(' ')
N, K = int(s1[0]), int(s1[1])
s2 = input().split(' ')
As = [int(s) for s in s2]
dp_sum = [0] * N
dp_max = [0] * N
dp_min = [0] * N
dp_sum[K-1] = sum(As[:K])
dp_min[K-1] = min(As[:K])
dp_max[K-1] = max(As[:K])
ans = (dp_sum[K-1] - dp_min[K-1] - dp_max[K-1]) / (K-2)
for i in range(K, N):
dp_sum[i] = dp_sum[i-1] - As[i-K] + As[i]
if As[i] >= dp_max[i-1]:
dp_max[i] = As[i]
else:
if As[i] >= As[i-K]:
dp_max[i] = dp_max[i-1]
else:
if As[i-K] < dp_max[i-1]:
dp_max[i] = dp_max[i-1]
else:
dp_max[i] = max(As[i-K+1: i+1])
if As[i] <= dp_min[i-1]:
dp_min[i] = As[i]
else:
if As[i] <= As[i-K]:
dp_min[i] = dp_min[i-1]
else:
if As[i-K] > dp_min[i-1]:
dp_min[i] = dp_min[i-1]
else:
dp_min[i] = min(As[i-K+1: i+1])
v = (dp_sum[i] - dp_min[i] - dp_max[i]) / (K-2)
ans = max(ans, v)
print(ans)
查看原帖
点赞 6
相关推荐
11-24 10:06
中南大学 Java 点赞 评论 收藏
分享
10-18 21:51
西安电子科技大学 C++ 点赞 评论 收藏
分享
牛客热帖
正在热议
# 25届秋招总结 #
331900次浏览 3135人参与
# 上班苦还是上学苦呢? #
73639次浏览 656人参与
# 阿里云管培生offer #
37351次浏览 424人参与
# 地方国企笔面经互助 #
4582次浏览 12人参与
# 如果有时光机,你最想去到哪个年纪? #
22078次浏览 416人参与
# 选完offer后,你后悔学本专业吗 #
22089次浏览 159人参与
# 百度开奖 #
186108次浏览 1166人参与
# 我的实习求职记录 #
6073276次浏览 83555人参与
# 如何一边实习一边秋招 #
997387次浏览 12669人参与
# 找工作时遇到的神仙HR #
553824次浏览 3803人参与
# 入职第一天,你准备什么时候下班 #
21683次浏览 144人参与
# 招聘要求与实际实习内容不符怎么办 #
10829次浏览 277人参与
# bilibili求职进展汇总 #
33361次浏览 357人参与
# 许愿池 #
214964次浏览 2535人参与
# 学历or实习经历,哪个更重要 #
54127次浏览 424人参与
# 你今年的平均薪资是多少? #
71117次浏览 345人参与
# 实习工作,你找得还顺利吗? #
248073次浏览 2913人参与
# 通信硬件薪资爆料 #
609875次浏览 5198人参与
# 海康威视求职进展汇总 #
400999次浏览 3408人参与
# 携程求职进展汇总 #
135954次浏览 932人参与
# 正在实习的你,几点下班 #
53464次浏览 396人参与
# 工作两年想退休了 #
53158次浏览 673人参与