#jstones. 2026暑假CSP-J模拟赛04-T4 程老师的过河石
2026暑假CSP-J模拟赛04-T4 程老师的过河石
【文件读写】本题使用文件读写:输入文件
stones.in,输出文件stones.out。
时间限制:1000ms 内存限制:512MB
题目描述
程老师要过一条河。
河面上有 块石头,按照从起点到终点的方向依次编号为 。程老师出发时站在起点位置,编号为 ;河对岸是终点位置,编号为 。
过河的规则如下。程老师每次可以向前跳跃 到 个位置。也就是说,如果他当前站在位置 ,下一步可以选择落脚在 中的任意一个位置。跳跃过程中,程老师会越过中间的所有石头,但只有最终落脚的那个位置才产生花费,被越过的石头不产生任何花费。
每块石头都有一个体力花费值。第 块石头的体力花费为 ,表示落在它上面需要消耗的体力点数。不同石头的花费值各不相同——有些石头花费很高,有些很低,甚至有些石头附近存在天然温泉,踩上去不仅不消耗体力,反而能恢复体力,这些石头对应的花费值为负数。花费值为正表示体力减少,为负表示体力增加。起点和终点位置没有体力花费,即花费为 。
程老师的目标是从起点出发,经过若干次跳跃,恰好落在终点位置,使得整个过河过程中的总体力花费最小。所谓"恰好落在终点",是指程老师的最后一次跳跃必须正好落在终点位置 上——不能跳过终点到达更远的地方,也不能停在终点之前的某块石头上就结束行程。
需要注意的是,当 时,程老师每次只能向前跳一个位置,这意味着他必须依次踩过每一块石头,无法跳过任何一块。而当 较大时,程老师可以选择性地踩踏部分石头、跳过其余石头,从而规划出一条总体力花费最小的路径。
请编写一个程序,帮助程老师计算从起点到达终点的最小总体力花费。
输入格式
第一行两个整数 ,分别表示石头数量和最大跳跃距离。
第二行 个整数 ,分别表示每块石头的体力花费值。
输出格式
一行一个整数,表示从起点到达终点的最小总体力花费。
数据范围
- 对于所有测试点,,。
- 子任务分档如下:
| 测试点 | 特殊性质 | ||
|---|---|---|---|
| 1 | 5 | 2 | 无 |
| 2~4 | 20 | 5 | |
| 5~10 | 2000 | 50 | |
| 11~12 | 1 | A | |
| 13~14 | 不限 | B | |
| 15~20 | 无 |
特殊性质 A:。
特殊性质 B:所有 相同。
样例
样例 1
输入
5 2
3 -2 4 1 5
输出
-1
样例 2
输入
1 5
100
输出
0
样例 3
输入
3 1
5 3 7
输出
15
样例解释
样例 1:从起点 出发,跳到第 块石头花费 ,再跳到第 块石头花费 ,再跳到终点 花费 ,总体力花费为 。
- ID
- 698
- 类型
- 传统题
- Time Limit
- 1000ms
- Memory Limit
- 512MiB
- 上传者
相关
在下列比赛中: