#jstones. 2026暑假CSP-J模拟赛04-T4 程老师的过河石

2026暑假CSP-J模拟赛04-T4 程老师的过河石

【文件读写】本题使用文件读写:输入文件 stones.in,输出文件 stones.out

时间限制:1000ms 内存限制:512MB

题目描述

程老师要过一条河。

河面上有 nn 块石头,按照从起点到终点的方向依次编号为 1,2,,n1, 2, \ldots, n。程老师出发时站在起点位置,编号为 00;河对岸是终点位置,编号为 n+1n+1

过河的规则如下。程老师每次可以向前跳跃 11kk 个位置。也就是说,如果他当前站在位置 pp,下一步可以选择落脚在 p+1,p+2,,p+kp+1, p+2, \ldots, p+k 中的任意一个位置。跳跃过程中,程老师会越过中间的所有石头,但只有最终落脚的那个位置才产生花费,被越过的石头不产生任何花费。

每块石头都有一个体力花费值。第 ii 块石头的体力花费为 cic_i,表示落在它上面需要消耗的体力点数。不同石头的花费值各不相同——有些石头花费很高,有些很低,甚至有些石头附近存在天然温泉,踩上去不仅不消耗体力,反而能恢复体力,这些石头对应的花费值为负数。花费值为正表示体力减少,为负表示体力增加。起点和终点位置没有体力花费,即花费为 00

程老师的目标是从起点出发,经过若干次跳跃,恰好落在终点位置,使得整个过河过程中的总体力花费最小。所谓"恰好落在终点",是指程老师的最后一次跳跃必须正好落在终点位置 n+1n+1 上——不能跳过终点到达更远的地方,也不能停在终点之前的某块石头上就结束行程。

需要注意的是,当 k=1k = 1 时,程老师每次只能向前跳一个位置,这意味着他必须依次踩过每一块石头,无法跳过任何一块。而当 kk 较大时,程老师可以选择性地踩踏部分石头、跳过其余石头,从而规划出一条总体力花费最小的路径。

请编写一个程序,帮助程老师计算从起点到达终点的最小总体力花费。

输入格式

第一行两个整数 n,kn, k,分别表示石头数量和最大跳跃距离。

第二行 nn 个整数 c1,c2,,cnc_1, c_2, \ldots, c_n,分别表示每块石头的体力花费值。

输出格式

一行一个整数,表示从起点到达终点的最小总体力花费。

数据范围

  • 对于所有测试点,1kn1051 \le k \le n \le 10^5ci109|c_i| \le 10^9
  • 子任务分档如下:
测试点 nn \le kk \le 特殊性质
1 5 2
2~4 20 5
5~10 2000 50
11~12 10510^5 1 A
13~14 不限 B
15~20

特殊性质 A:k=1k = 1

特殊性质 B:所有 cic_i 相同。

样例

样例 1

输入

5 2
3 -2 4 1 5

输出

-1

样例 2

输入

1 5
100

输出

0

样例 3

输入

3 1
5 3 7

输出

15

样例解释

样例 1:从起点 00 出发,跳到第 22 块石头花费 2-2,再跳到第 44 块石头花费 11,再跳到终点 66 花费 00,总体力花费为 2+1+0=1-2 + 1 + 0 = -1

难度 提高
通过率 50%
尝试 4
已通过 2
ID
698
类型
传统题
Time Limit
1000ms
Memory Limit
512MiB
上传者

相关

在下列比赛中:

暑假CSP-J模拟赛 第4场