P1464function 記憶巨集

2021-10-16 12:21:35 字數 950 閱讀 1777

題目描述

對於乙個遞迴函式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 ...