題目描述
對於乙個遞迴函式w(a,b,c)w(a,b,c)
如果a \le 0a≤0 or b \le 0b≤0 or c \le 0c≤0就返回值11.
如果a>20a>20 or b>20b>20 or c>20c>20就返回w(20,20,20)w(20,20,20)
如果aabsi2011 : 比如 w(30,-1,0)w(30,−1,0)既滿足條件1又滿足條件2
這種時候我們就按最上面的條件來算
所以答案為1
輸入格式
會有若干行。
並以-1,-1,-1−1,−1,−1結束。
保證輸入的數在[-9223372036854775808,9223372036854775807][−9223372036854775808,9223372036854775807]之間,並且是整數。
輸出格式
輸出若干行,每一行格式:
w(a, b, c) = ans
注意空格。
輸入輸出樣例
輸入 #1複製
1 1 1
2 2 2
-1 -1 -1
輸出 #1複製
w(1, 1, 1) = 2
w(2, 2, 2) = 4
說明/提示
記憶化搜尋
#include
using
namespace std;
#define w_mem(x,y,z) (w_mem[x][y][z] ? w_mem[x][y][z] : w_mem[x][y][z] = w(x, y, z))
//記憶巨集的呼叫
int w_mem[25]
[25][
25];intw(
int a,
int b,
int c)
intmain()
}
洛谷P1464 Function 記憶化搜尋
對於乙個遞迴函式w a,b,c w a,b,c 如果a le 0a 0 or b le 0b 0 or c le 0c 0就返回值11.如果a 20a 20 or b 20b 20 or c 20c 20就返回w 20,20,20 w 20,20,20 如果a absi2011 比如 w 30,1,...
洛谷 P1464 Function 記憶化搜尋
p1464 function 提交對於乙個遞迴函式w a,b,c w a,b,c 如果a le 0a 0 or b le 0b 0 or c le 0c 0就返回值11.如果a 20a 20 or b 20b 20 or c 20c 20就返回w 20,20,20 w 20,20,20 如果a ab...
function(記憶化搜尋)
思路 也是看了後面的題解才理解和學會這個演算法,這是一道記憶化搜尋的好題,因為題目描述了後面的數會非常大,所以我們不可能每個數字都去進行一次遞迴,我們可以將已經計算過的數字儲存起來,當我們要用到它時,判斷它是否已被記錄,如果已被記錄那麼我們就直接返回裡面儲存的值即可 上 include using ...