TB椰程 TypeBuddy 打字搭子

记忆化搜索

CSP-J · 编程模板 · 片段 · cpp · 难度 3/5 · 共 457 字

DFS + 缓存,算过的子问题直接查表

  • 搜索
  • 记忆化搜索

前置内容

正文

// 记忆化搜索:DFS + 缓存
// 算过的子问题直接查表
// 避免重复递归,变指数 O(n)
// 例:斐波那契(递归版)
#include <cstdio>
long long f[1005];
// 记忆数组初为 -1 表示未算
int n;
long long fib(int k) {
    // 已算过直接返回
    if (f[k] != -1) return f[k];
    // 边界:f(0)=0, f(1)=1
    if (k < 2) return f[k] = k;
    // 递归求和并缓存
    return f[k] = fib(k - 1) + fib(k - 2);
}
int main() {
    scanf("%d", &n);
    // 初始化记忆数组为 -1
    for (int i = 0; i <= n; i++) f[i] = -1;
    printf("%lld", fib(n));
    return 0;
}

CSP-J · 编程模板的其它内容

打字首页 · 词库画廊 · 编程打字 · 指法入门 · 天梯榜 · 数据分析 · 班级课堂 · 关于我们
椰程 TypeBuddy 打字搭子 —— 键盘指法练习 · 单词记忆 · 班级课堂 · 在线 PK