SZ#G6DP02. 【GESP强化 六级】青蛙 1

提交1 通过1
通过率100%
时间限制2000ms
内存限制256MiB
    ID: 11516 传统题 2000ms 256MiB 尝试: 1 已通过: 1 难度: 入门 上传者: 标签>GESPGESP强化C++c++编程题简单序列型DP一维DP最短代价1星

题目描述

NN 个台阶。每个台阶编号为 1,2,,N1, 2, \ldots, N。对于每个 ii1iN1 \leq i \leq N),第 ii 个台阶的高度为 hih_i

一只青蛙最初在第 11 个台阶上。青蛙可以重复以下操作,试图到达第 NN 个台阶:

  • 当青蛙在第 ii 个台阶时,可以跳到第 i+1i+1 或第 i+2i+2 个台阶。跳到目标台阶 jj 时,需要支付的代价为 hihj|h_i - h_j|

请你求出青蛙到达第 NN 个台阶所需支付的总代价的最小值。

输入格式

输入通过标准输入按以下格式给出。

NN
h1h_1 h2h_2 \ldots hNh_N

输出格式

输出青蛙需要支付的总代价的最小值。

4
10 30 40 20
30
2
10 10
0
6
30 10 60 10 60 50
40

说明/提示

限制条件

  • 所有输入均为整数。
  • 2N1052 \leq N \leq 10^5
  • 1hi1041 \leq h_i \leq 10^4

样例解释 1

如果青蛙按 1241 \to 2 \to 4 的顺序移动,则总代价为 1030+3020=30|10 - 30| + |30 - 20| = 30

样例解释 2

如果青蛙按 121 \to 2 的顺序移动,则总代价为 1010=0|10 - 10| = 0

样例解释 3

如果青蛙按 13561 \to 3 \to 5 \to 6 的顺序移动,则总代价为 3060+6060+6050=40|30 - 60| + |60 - 60| + |60 - 50| = 40