问题陈述
有 N 块石头,编号为 1,2,…,N 。每块 i ( 1≤i≤N )石头 i 的高度是 hi 。
有一只青蛙,它最初在石块 1 上。它会重复下面的动作若干次以到达 N 号石块:
- 如果青蛙目前在 i 号石块上,请跳到以下其中一块:石块 i+1,i+2,…,i+K 。这里会产生 ∣hi−hj∣ 的代价,其中 j 是要降落的石块。
求青蛙到达石块 N 之前可能产生的最小总成本。
限制因素
- 所有输入值均为整数。
- 2≤N≤105
- 1≤K≤100
- 1≤hi≤104
输入
输入内容由标准输入法提供,格式如下:
- N K
- h1 h2 … hN
输出
打印可能产生的最低总成本。
5 3
10 30 40 50 20
30
如果我们沿着 1 → 2 的路径运行→ 5 ,产生的总成本为 ∣10−30∣+∣30−20∣=30 。
3 1
10 20 10
20
如果我们沿着路径 1 → 2 → 3 ,则产生的总成本为 ∣10−20∣+∣20−10∣=20 。
2 100
10 10
0
如果我们沿着 1 → 2 的路径前进,产生的总成本为 ∣10−10∣=0 。→ 2 ,产生的总成本为 ∣10−10∣=0 。
10 4
40 10 20 70 80 10 20 70 80 60
40
如果我们沿着路径 1 → 4 → 8 → 10 ,则产生的总成本为 ∣40−70∣+∣70−70∣+∣70−60∣=40 。
来源
https://atcoder.jp/contests/dp/tasks/dp_b