/ Vijos / 题库 /

跳格子[1]

跳格子[1]

时间限制:1秒  内存限制:256M


【题目描述】

  奶牛们正在回味童年,玩一个类似跳格子的游戏,在这个游戏里,奶牛们在草地上画了一行 \(N\) 个格子,编号为 \(1..N\)。

  就像任何一个好游戏一样,这样的跳格子游戏也有奖励!第 \(i\) 个格子标有一个数字 \(V_i\) 表示这个格子的钱。奶牛们想看看最后谁能得到最多的钱。

  规则很简单:
  * 每个奶牛从 0 号格子出发。(0 号格子在 1 号之前,那里没钱)
  * 她向 \(N\) 号格子进行一系列的跳跃(也可以不跳),每次她跳到的格子最多可以和前一个落脚的格子差 \(K(2≤K≤N)\) 格,比方说,\(K=2\) 时,可以从 1 号格跳到 2 号和 3 号格子
  * 在任何时候,她都可以选择回头往 0 号格子跳,直到跳到 0 号格子。

  另外,除了以上规则之外,回头跳的时候还有两条规则:
  * 不可以跳到之前停留的格子。
  * 除了0号格子之外,她在回来的时候,停留的格子必须是恰巧过去的时候停留的某个格子的前一格(当然,也可以跳过某些过去时候停留的格子)。简单点说,如果 \(i\) 号格子是回来停留的格子,\(i+1\) 号就必须是过去停留的格子,如果 \(i+1\) 号格子是过去停留的格子,\(i\) 号格子不一定要是回来停留的格子。(如果这里不太清楚的可以去看英文原文)

  她得到的钱就是所有停留过的格子中的数字的和,请你求出最多奶牛可以得到的钱数。

【输入格式】

  第 1 行两个用空格隔开的整数: \(N\) 和 \(K\)
  第 2 到 \(N+1\) 行: 第 \(i+1\) 行有一个整数: \(V_i\)

【输出格式】

  一个单个的整数表示最大的钱数是多少。

【输入输出样例】

 Input

5 2
0
1
2
-3
4

 Output

4

【数据限制】

  对于 \(100\%\) 的数据,\(3≤N≤250,000\),-2,000,000,000≤V_i≤2,000,000,000

【来源】

  Mr.he**

信息

ID
2607
难度
(无)
分类
动态规划 点击显示
标签
(无)
递交数
0
已通过
0
通过率
?
被复制
1
上传者