#19275. 登山训练

登山训练

第一部分:背景知识讲解

本题结合了初中地理初中数学的两个核心概念:

  1. 海拔与相对高度(地理)

    • 海拔:地面某点高出海平面的垂直距离。
    • 相对高度:某个地点高出另一个地点的垂直距离。
    • 登山规律:从低海拔向高海拔行进(爬坡)需要克服重力做功,消耗更多体力;从高海拔向低海拔行进(下坡)通常较省力。
  2. 网格距离 / 曼哈顿距离(数学)

    • 在城市街道或网格地图中,两点 A(x1,y1)A(x_1, y_1)B(x2,y2)B(x_2, y_2) 之间的距离通常不是直线距离,而是横向距离与纵向距离之和。
    • 公式:d=x1x2+y1y2d = |x_1 - x_2| + |y_1 - y_2|

第二部分:题目内容

题目名称:登山训练 (Hiking Training)

题目描述

小杨的学校组织了一次地理考察暨登山训练活动。

考察区域被简化为一个二维平面直角坐标系。地图上标注了 NN 个打卡点,编号从 11NN。 对于第 ii 个打卡点,我们知道它的平面坐标 (xi,yi)(x_i, y_i) 以及它的海拔高度 hih_i

小杨需要按照编号顺序(123N1 \to 2 \to 3 \to \dots \to N)依次访问这些打卡点。 在两个打卡点之间移动时,体力的消耗规则如下:

  1. 水平移动消耗:无论地势如何,水平移动(即曼哈顿距离)每移动 11 个单位长度,消耗 11 点体力。
  2. 爬坡额外消耗:如果从海拔低的地方走到海拔高的地方(即 hnext>hnowh_{next} > h_{now}),除了水平移动消耗外,每上升 11 个单位高度,需要额外消耗 KK 点体力。
  3. 下坡或平路:如果从高处往低处走或高度不变(hnexthnowh_{next} \le h_{now}),则不产生额外的高度体力消耗(只计算水平移动消耗)。

请你编写程序,计算小杨完成这次从第 11 点走到第 NN 点的拉练活动,总共需要消耗多少体力。

输入格式

第一行包含两个正整数 N,KN, K

  • NN 表示打卡点的数量。
  • KK 表示爬坡时每单位高度的额外体力消耗系数。

接下来 NN 行,每行包含 3 个整数 xi,yi,hix_i, y_i, h_i,分别表示第 ii 个打卡点的横坐标、纵坐标和海拔高度。

输出格式

输出一行一个整数,表示总消耗的体力值。

输入输出样例 #1

输入:

3 10
0 0 100
3 4 100
5 5 120

输出:

210

样例 #1 解释:

  1. 1 \to 2
    • 水平距离:30+40=7|3-0| + |4-0| = 7
    • 高度变化:100100100 \to 100(平路),无额外消耗。
    • 消耗:77
  2. 2 \to 3
    • 水平距离:53+54=2+1=3|5-3| + |5-4| = 2 + 1 = 3
    • 高度变化:100120100 \to 120(上坡),高度差 2020
    • 额外消耗:20×10=20020 \times 10 = 200
    • 消耗:3+200=2033 + 200 = 203
  3. 总计7+203=2107 + 203 = 210

输入输出样例 #2

输入:

4 5
10 10 500
10 20 400
20 20 450
20 10 300

输出:

280

样例 #2 解释:

  1. 1 \to 2:距离 1010+2010=10|10-10| + |20-10| = 10。高度 500400500 \to 400(下坡)。消耗:1010
  2. 2 \to 3:距离 2010+2020=10|20-10| + |20-20| = 10。高度 400450400 \to 450(上坡 5050)。消耗:10+50×5=26010 + 50 \times 5 = 260
  3. 3 \to 4:距离 2020+1020=10|20-20| + |10-20| = 10。高度 450300450 \to 300(下坡)。消耗:1010
  4. 总计10+260+10=28010 + 260 + 10 = 280

数据范围

对于 100%100\% 的数据:

  • 2N10002 \le N \le 1000
  • 1K1001 \le K \le 100
  • 0xi,yi,hi100000 \le x_i, y_i, h_i \le 10000