#3882. 省钱爬楼赛

省钱爬楼赛

🐰😺🔋 兔猫信奥学院·加菲老师的省钱爬楼挑战🔋😺🐰

在信奥学院的古塔前,加菲老师邀请小兔和小猫进行一次“省钱爬楼”比赛。石阶上写着:

“给定一个数组 cost,其中 cost[i] 表示从第 ii 阶向上爬所需支付的费用;支付后可以向上爬 1 阶或 2 阶。你可以从下标 0 或 1 开始,目标是到达楼顶——即在最后一阶之上——花费最少的钱。”

加菲老师笑着说:“小兔、小猫,谁能最省钱地攀上顶端?”


输入格式

第一行包含一个整数 m,表示数组 cost 的长度。
第二行包含 m 个整数 cost[0], cost[1], …, cost[m-1],用空格分隔。
  • 2m10002 \le m \le 1000
  • 0cost[i]9990 \le \text{cost}[i] \le 999

输出格式

输出一个整数,表示达到楼梯顶部所需支付的最低费用。

样例 1

3
10 15 20
15
  • 解释:
    • 从下标 1 开始,支付 15,跨 2 阶直接到达楼顶。
    • 总费用 = 15。

样例 2

10
1 100 1 1 1 100 1 1 100 1
6
  • 解释:
    最优路径如下(下标→支出→到达下标):
    1. 从 0 开始,支付 1,跨 2 阶 → 下标 2
    2. 支付 1,跨 2 阶 → 下标 4
    3. 支付 1,跨 2 阶 → 下标 6
    4. 支付 1,跨 1 阶 → 下标 7
    5. 支付 1,跨 2 阶 → 下标 9
    6. 支付 1,跨 1 阶 → 楼顶
      总费用 = 1+1+1+1+1+1=61+1+1+1+1+1=6

🎓 加菲老师寄语:
通过本题,同学们可以掌握如何用 $$\min$$ 和常量空间动态规划来解决最优决策问题。下次,我们将一起探索“带冷却时间的爬楼费用”变种,更加考验算法的灵活性!

祝大家算法之路节节攀升!