AlgoMooc
你已开通华为OD训练营权益,还差最后一步——完成入营激活(兑换课程 + 加飞书 + 登记服务群),即可解锁全部课程与专属服务。去激活 →
← 返回题库

P3395. 跳格子(3)

中等通过率 49% · 提交 704 · 通过 345
动态规划单调栈滑动窗口DP

小慕正在参与一个跳格子挑战游戏,每个格子上都标有一个分数。 例如,score[] = [1, -1, -6, 7, -17, 7],从起点 score[0] 出发,每次最多可以跳 k 步,请帮小慕计算出他跳到终点 时,所能获得的最高得分。 注: - 格子总数和步长的取值范围均为 [1, 100000]; - 每个格子上的分数在 [-10000, 10000] 之间。

提示:带虚线的词点一下有通俗解释。

输入描述

<p> 第一行输入总的格子数量n </p> <p> 第二行输入每个格子的分数score[] </p> <p> 第三行输入最大跳的步长k </p>

输出描述

输出最大得分数

示例

示例 1

输入

6
1 -1 -6 7 -17 7
2

输出

14

说明:小明从起点score[0]开始跳,第一次跳score[1],第二次跳到score[3],第三次跳到score[5],因此得到的最大的得分是score[0]+ score[1]+ score[3]+ score[5]= 14

时间限制 1000 ms · 内存限制 128 MB

看不懂题目?点开图解
0 1 1 -1 2 -6 3 7 4 -17 5 7 样例:k=2,最大得分路径 0 → 1 → 3 → 5 得分:1 + (-1) + 7 + 7 = 14
写完代码点「提交」,将对全部测试用例判题。

向老师提问

针对「跳格子(3)」把疑问、代码和报错填清楚,老师收到后能更快、更准地回复你。