記憶化搜尋(遞迴)講解

2021-07-16 20:15:18 字數 600 閱讀 2425

記憶化的本質是:

先記錄,後返回(記住:一定要記錄,否則就是普通的遞迴);

如果表中有,則直接返回。

1.斐波那契寫法:

1 ,1 ,2 ,3 ,5 ,8 ,13…

//結果 1134903170

#include

#include

#include

#define ll long long

using

namespace

std;

ll f[1001];

//原始程式:

//int fac(int n)

////記憶化:

ll fac(int n)

int main()

改進的**(記憶化):

#include

#include

#include

using

namespace

std;

int f[1001];

int dfs(int t)

int main()

總結 遞迴 記憶化搜尋 遞迴

遞迴函式執行時分為函式 前進段和返回段,真正明白並時刻記住這個才真正掌握了遞迴。寫遞迴時三點 開始定義的 引數,結束條件 邊界 若干if語句 遞迴呼叫及 返回段運算 一般引數中總有乙個代表遞迴層數。遞迴結束返回時要考慮是否修改了全域性變數,並將其改回,這個是為回溯做準備。記憶化搜尋 解決了遞迴時大量...

遞迴的函式 記憶化搜尋

給定乙個函式 f a,b,c 如果 a 0 或 b 0 或 c 0 返回值為 1 如果 a 20 或 b 20 或 c 20 返回值為 f 20,20,20 如果 a b 並且 b c 返回 f a,b,c 1 f a,b 1,c 1 f a,b 1,c 其它情況返回 f a 1,b,c f a 1...

記憶化搜尋 dfs 遞迴 Chocolate

有一塊巧克力 每乙個單位有一定的美味值 判斷是否可以把他分為k塊美味值相等的小巧克力 charlie 有一塊巧克力。這塊巧克力是矩形的,有 n 行 m 列一共 n m 個大小相同的小塊,每一小塊都有乙個美味值 ai,j。charlie 有 k 個朋友,他希望把巧克力分給這些朋友。charlie 按如...