当前位置: 首页 > news >正文

DP2 跳台阶【牛客网】

文章目录

  • 零、原题链接
  • 一、题目描述
  • 二、测试用例
  • 三、解题思路
  • 四、参考代码

零、原题链接


DP2 跳台阶

一、题目描述

在这里插入图片描述

二、测试用例

在这里插入图片描述

三、解题思路

  1. 基本思路:
      动态规划题目的难点基本在于构造状态转移方程,对应这题,我们可以发现每次跳跃我们可以选择跳一阶还是二阶,跳一阶是一种可能,跳两阶也是一种可能,后续选择怎么跳和当前选择怎么跳是有关系。倒过来看,总的跳跃方法可以变成最后一次是跳一阶的方法和最后一次是跳两阶的方法,最后一次跳一阶的方法数量有可以拆分成倒数第二次跳一阶和跳两阶的总和,依次类推,我可以得到状态转移方程: f ( n ) = f ( n − 1 ) + f ( n − 2 ) f(n)=f(n-1)+f(n-2) f(n)=f(n1)+f(n2)
  2. 具体思路:
      根据状态转移方程,其实就是求斐波那契数列,我们可以初始化两个变量都为 1,然后互相累加,直到算到第 n 个数为止。

四、参考代码

时间复杂度: O ( n ) \Omicron(n) O(n)
空间复杂度: O ( 1 ) \Omicron(1) O(1)

#include <iostream>
using namespace std;int main() {int n;cin >> n;int a = 1, b = 1;for (int i = 1; i < n; i+=2) {b += a;a += b;}if (n % 2 == 0) {cout << b;} else {cout << a;}
}
// 64 位输出请用 printf("%lld")
http://www.dtcms.com/a/203357.html

相关文章:

  • win版mysql8.0和redis,解压即用
  • YOLO模型初次训练体验(+实测)
  • 时态--07--过去完成時
  • 探秘「4+3原型驱动的交付模式」如何实现软件快速定制
  • 现代计算机图形学Games101入门笔记(十八)
  • 《算法笔记》11.8小节——动态规划专题->总结 问题 B: 拦截导弹
  • 第二届帕鲁杯时间折叠(TimeFold Paradox)
  • 2025年电工杯新规发布-近三年题目以及命题趋势
  • vLLM框架高效原因分析
  • 游戏开发实战(三):Python复刻「崩坏星穹铁道」嗷呜嗷呜事务所---源码级解析该小游戏背后的算法与设计模式【纯原创】
  • 【优秀三方库研读】在 quill 开源库中为什么封装 safe_fwrite,而不是直接使用系统 fwrite
  • Unity3D仿星露谷物语开发47之砍树时落叶特效
  • 四元数中 w xyz 的含义及应用
  • 一文掌握 LoRA 常见变体
  • Ubuntu操作系统里面安装Docker Compose
  • 大模型高效微调技术全面解析:从PEFT原理到实战应用
  • 简单理解 LightRAG
  • 力扣-快乐数
  • leetcode hot100刷题日记——6.和为 K 的子数组
  • 【Java微服务组件】异步通信P1—消息队列基本概念
  • 【Linux】第二十三章 控制启动过程
  • 高版本Fastjson:Getter调用限制及绕过方式探究
  • python学习day3
  • Linux 磁盘扩容实战案例:从问题发现到完美解决
  • idea部署本地仓库和连接放送远程仓库
  • 2025年PMP 学习二十三 16章 高级项目管理
  • IGBT选型时需关注的参数,适用场景(高压大电流低频)以及驱动电路设计注意事项
  • 【信息系统项目管理师】第11章:项目成本管理 - 32个经典题目及详解
  • 六足连杆爬行机器人的simulink建模与仿真
  • ISCC 2025决赛 wp