当前位置: 首页 > 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")

相关文章:

  • 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—消息队列基本概念
  • 国家能源局:成立核电工程定额专家委员会
  • 欧盟和英国对俄新一轮制裁将中国公司也列入名单,外交部回应
  • 翻越高山,成为高山!浙江广厦成CBA历史第八支夺冠球队
  • 携程:今年第一季度营业收入约138亿元,入境旅游预订同比增长超100%
  • 河北省纪委原副书记、省监委原副主任陈玉祥一审获刑十二年
  • 人民日报:不能层层加码,要层层负责