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

Day11 动态规划入门

动态规划 就是 : 给定一个问题,我们把它拆成一个个子问题,直到子问题可以直接解决。然后把子问题的答案保存起来,以减少重复计算。再根据子问题答案反推,得出原问题解的一种方法.

记忆化搜索 = 暴力dfs + 记录答案

动态规划入门思路: dfs暴力 --- 记忆化搜索 --- 递推

1dfs > 2记忆化搜索 > 3逆序递推 > 4顺序递推 > 5优化空间 !

递归的过程:

"递" 的过程是: 分解子问题的过程;

"归" 的过程才是: 产生答案的过程;

"递" -- 自顶向下"归" -- 自底向上 , 其中 "底" 是 递归搜索树 的底

写出递推公式的方法:

递推 的公式 = dfs 向下 递归 的公式

递推 数组的初始值 = 递归 的边界

一.经典跳台阶

一个楼梯共有 nn 级台阶,每次可以走一级或者两级,问从第 00 级台阶走到第 nn 级台阶一共有多少种方案。

输入格式

共一行,包含一个整数 nn。

输出格式

共一行,包含一个整数,表示方案数。

数据范围

1≤n≤15

#include<iostream>
using namespace std;

const int N = 20;
int n;
int f[N];

int main(){
    scanf("%d",&n);
    f[1] = 1, f[2] = 2;
    if(n == 1 || n == 2){
        printf("%d\n", f[n]);
        return 0;
    }
    
    int newf = 0, temp1 = 1, temp2 = 2;
    for(int i = 3; i <= n; i++){
        newf = temp1 + temp2;
        temp1 = temp2;
        temp2 = newf;
    }
    
    for(int i = 3; i <= n; i++){
        f[i] = f[i - 1] + f[i - 2];
    }
    printf("%d\n",f[n]);
    return 0;
}

相关文章:

  • 第11章:Kubernetes架构详解:控制平面与数据平面
  • 学习CSS滤镜属性 `filter: invert()`
  • 目标检测20年(二)
  • GRS认证的注意事项!GRS认证的定义
  • 纯血鸿蒙:中国操作系统自主创新的里程碑
  • 第六届IEEE人工智能、网络与信息技术国际学术会议(AINIT 2025)
  • asp.net core mvc模块化开发
  • java退出程序异常分类
  • Geoserver修行记--离了个大谱,Geoserver的图层搜索不能用
  • 移动wsl2的系统镜像
  • 混合精度-基于torch内部
  • 阿里qwen大模型AI智能分析实时对话生成病例的DEMO
  • 设计一套水产养殖系统
  • 安卓NAS,众乐影音APP,低成本打造全能家庭存储中心
  • 使用excel.EasyExcel实现导出有自定义样式模板的excel数据文件,粘贴即用!!!
  • Midjourney使用教程—2.作品修改
  • 从零开始学Seata:分布式事务的终极解决方案
  • mysql not in 查询不出来null的原因
  • 【视觉提示学习】3.21论文随想
  • 流程优化的可配置文档结构化系统设计
  • 金砖国家召开经贸联络组司局级特别会议,呼吁共同抵制单边主义和贸易保护主义
  • 陈宝良 高寿仙 彭勇︱明清社会的皇权、商帮与市井百态
  • 警方通报男子地铁上拍视频致乘客恐慌受伤:列车运行一度延误,已行拘
  • 4月证券私募产品备案量创23个月新高,股票策略占比超六成
  • 央行设立服务消费与养老再贷款,额度5000亿元
  • 四川资阳市原市长王善平被双开,“笃信风水,大搞迷信活动”