遞迴函式執行時分為函式 前進段和返回段,真正明白並時刻記住這個才真正掌握了遞迴。
寫遞迴時三點:開始定義的
引數,結束條件(邊界)(若干if語句),遞迴呼叫及
返回段運算
。 ·一般引數中總有乙個代表遞迴層數。
·遞迴結束返回時要考慮是否修改了全域性變數,並將其改回,這個是為回溯做準備。
記憶化搜尋:解決了遞迴時大量的重複計算(通過將每次計算值記錄入陣列)
本質:空間換時間。
遞推:推出公式。(感覺就是數學推導)
遞推時注意數學建模不要暈。一定得想清楚,
可以先模擬下。
三者的理解並使用的難度層次呈公升序排列。開始會暈,所以要大量切題找手感(rp)。還有我覺得遞推與動態規劃有很大聯絡。
oj p1113 2的冪次方 (遞迴)
oj p1114 拍賣 (遞推)
oj p1115 集合劃分 (遞迴)
oj p1119 傳球遊戲(遞推)
記憶化搜尋(遞迴)講解
記憶化的本質是 先記錄,後返回 記住 一定要記錄,否則就是普通的遞迴 如果表中有,則直接返回。1.斐波那契寫法 1 1 2 3 5 8 13 結果 1134903170 include include include define ll long long using namespace std l...
遞迴的函式 記憶化搜尋
給定乙個函式 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 按如...