第一部分:背景知识讲解
本题结合了初中地理与初中数学的两个核心概念:
-
海拔与相对高度(地理):
- 海拔:地面某点高出海平面的垂直距离。
- 相对高度:某个地点高出另一个地点的垂直距离。
- 登山规律:从低海拔向高海拔行进(爬坡)需要克服重力做功,消耗更多体力;从高海拔向低海拔行进(下坡)通常较省力。
-
网格距离 / 曼哈顿距离(数学):
- 在城市街道或网格地图中,两点 A(x1,y1) 和 B(x2,y2) 之间的距离通常不是直线距离,而是横向距离与纵向距离之和。
- 公式:d=∣x1−x2∣+∣y1−y2∣。
第二部分:题目内容
题目名称:登山训练 (Hiking Training)
题目描述
小杨的学校组织了一次地理考察暨登山训练活动。
考察区域被简化为一个二维平面直角坐标系。地图上标注了 N 个打卡点,编号从 1 到 N。
对于第 i 个打卡点,我们知道它的平面坐标 (xi,yi) 以及它的海拔高度 hi。
小杨需要按照编号顺序(1→2→3→⋯→N)依次访问这些打卡点。
在两个打卡点之间移动时,体力的消耗规则如下:
- 水平移动消耗:无论地势如何,水平移动(即曼哈顿距离)每移动 1 个单位长度,消耗 1 点体力。
- 爬坡额外消耗:如果从海拔低的地方走到海拔高的地方(即 hnext>hnow),除了水平移动消耗外,每上升 1 个单位高度,需要额外消耗 K 点体力。
- 下坡或平路:如果从高处往低处走或高度不变(hnext≤hnow),则不产生额外的高度体力消耗(只计算水平移动消耗)。
请你编写程序,计算小杨完成这次从第 1 点走到第 N 点的拉练活动,总共需要消耗多少体力。
输入格式
第一行包含两个正整数 N,K。
- N 表示打卡点的数量。
- K 表示爬坡时每单位高度的额外体力消耗系数。
接下来 N 行,每行包含 3 个整数 xi,yi,hi,分别表示第 i 个打卡点的横坐标、纵坐标和海拔高度。
输出格式
输出一行一个整数,表示总消耗的体力值。
输入输出样例 #1
输入:
3 10
0 0 100
3 4 100
5 5 120
输出:
210
样例 #1 解释:
- 1 → 2:
- 水平距离:∣3−0∣+∣4−0∣=7。
- 高度变化:100→100(平路),无额外消耗。
- 消耗:7。
- 2 → 3:
- 水平距离:∣5−3∣+∣5−4∣=2+1=3。
- 高度变化:100→120(上坡),高度差 20。
- 额外消耗:20×10=200。
- 消耗:3+200=203。
- 总计:7+203=210。
输入输出样例 #2
输入:
4 5
10 10 500
10 20 400
20 20 450
20 10 300
输出:
280
样例 #2 解释:
- 1 → 2:距离 ∣10−10∣+∣20−10∣=10。高度 500→400(下坡)。消耗:10。
- 2 → 3:距离 ∣20−10∣+∣20−20∣=10。高度 400→450(上坡 50)。消耗:10+50×5=260。
- 3 → 4:距离 ∣20−20∣+∣10−20∣=10。高度 450→300(下坡)。消耗:10。
- 总计:10+260+10=280。
数据范围
对于 100% 的数据:
- 2≤N≤1000
- 1≤K≤100
- 0≤xi,yi,hi≤10000