【发布时间】:2020-03-26 19:23:28
【问题描述】:
谁能帮我解答这个问题? 我需要它的python解决方案
我们已经进入了 21 世纪,小学生在第 4 班学习动态编程。IOI 训练营已经退化为无休止的测试序列,分数为负。在训练营结束时,每个学生都将根据整个测试序列中最好的连续部分(即没有差距)的总和进行评估。
然而,学生们多年来并没有太大变化,他们要求在评估程序中放宽一些。作为一项让步,营地协调员已同意允许学生在计算最佳成绩时放弃一定数量的测试。
例如,假设Lavanya是训练营的一名学生,已经进行了十次测试,她的分数如下。
测试 1 2 3 4 5 6 7 8 9 10
标记 6 -5 3 -7 6 -1 10 -8 -8 8
在这种情况下,不允许放弃任何测试,最好的部分是测试 5-7,总共产生 15 分。如果允许 Lavanya 在一个部分中最多放弃 2 个测试,那么最好的部分是测试 1-7,在放弃测试 2 和 4 后总共会产生 24 分。如果允许她在一个部分中最多放弃 6 个测试,则最好的总数是通过取出整个列表并删除 5 个否定条目得到总共 33 个。
您将获得一个包含 N 个测试标记的序列和一个数字 K。当最多 K 个标记可能从该片段中删除时,您必须计算该序列中最佳片段的总和。
【问题讨论】:
标签: python dynamic-programming