洛谷 P1464 Function 記憶化搜尋

2021-09-27 19:17:17 字數 1569 閱讀 5447

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,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

#include

using

namespace std;

typedef

long

long ll;

ll a,b,c,note[30]

[30][

30]=;

ll w

(ll i,ll j,ll k)

//定義w

if(note[i]

[j-1

][k-1]

==0)if

(note[i]

[j-1

][k]==0

)

note[i]

[j][k]

=note[i]

[j][k-1]

+note[i]

[j-1

][k-1]

-note[i]

[j-1

][k];}

else

if(note[i-1]

[j-1

][k]==0

)if(note[i-1]

[j][k-1]

==0)if

(note[i-1]

[j-1

][k-1]

==0)

note[i]

[j][k]

=note[i-1]

[j][k]

+note[i-1]

[j-1

][k]

+note[i-1]

[j][k-1]

-note[i-1]

[j-1

][k-1]

;}return note[i]

[j][k];}

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,...

P1464function 記憶巨集

題目描述 對於乙個遞迴函式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 3...

洛谷P5049 洛谷P5022 題解 旅行

原題 資料加強版 加強版 參考你谷題解 終於調過了 又是一如既往的申必錯誤 noi plus石錘了 原題的資料允許我們 o n 2 暴力斷邊,但是加強版的資料達到了 n log n 級別,我們必須在斷邊這一環節尋求更好的解法。考慮我們進入環後在何處回溯 根據繼續走環走到的點分類 設當前已經從 b 走...