洛谷P1216數塔(逆向遞推遞迴 記憶化,dp)

2022-06-24 15:18:08 字數 968 閱讀 6023

題目很簡單,是dp和記憶化搜尋的入門練手好題

有乙個坑點,全為0的時候,記憶化沒初始化為其它值的話,還是暴力遞迴絕對超時。。(所以記憶化時,根據題目要求分析,一般都初始化為-1)

1 #include 2 #include 

3 #include 4 #include 5 #include 6 #include 7

using

namespace

std;

8 typedef long

long

ll;9 typedef unsigned long

long

ull;

10const

int maxn=1005;11

inta[maxn][maxn];

12int

f[maxn][maxn];

13int

vis[maxn];

14int

r;15

16int so(int x,int

y)17

2324

int l=y,r=y+1;25

int ls=a[x][y],rs=a[x][y],ans=a[x][y];

26if(l>=1) ls+=so(x+1

,l);

27if(r<=r) rs+=so(x+1

,r);

2829 ans=max(ans,ls);

30 ans=max(ans,rs);

31 f[x][y]=max(f[x][y],ans);

32return

f[x][y];33}

3435

intmain()

3647}48

49int ans=so(1,1

);50

51 cout5253

return0;

54 }

完。

洛谷 P1216數字三角形

題目描述 觀察下面的數字金字塔。寫乙個程式來查詢從最高點到底部任意處結束的路徑,使路徑經過數字的和最大。每一步可以走到左下方的點也可以到達右下方的點。在上面的樣例中,從7 3 8 7 5 的路徑產生了最大 輸入格式 第乙個行乙個正整數 rr 表示行的數目。後面每行為這個數字金字塔特定行包含的整數。輸...

P1216 數字三角形 洛谷

觀察下面的數字金字塔。寫乙個程式來查詢從最高點到底部任意處結束的路徑,使路徑經過數字的和最大。每一步可以走到左下方的點也可以到達右下方的點。738 8102 7444 5265在上面的樣例中,從 7 to 3 to 8 to 7 to 57 3 8 7 5 的路徑產生了最大 輸入格式 第乙個行乙個正...

洛谷 P1216 數字三角形(dp)

題目描述 觀察下面的數字金字塔。寫乙個程式來查詢從最高點到底部任意處結束的路徑,使路徑經過數字的和最大。每一步可以走到左下方的點也可以到達右下方的點。輸入輸出格式 輸入格式 第乙個行包含 r 1 r 1000 表示行的數目。後面每行為這個數字金字塔特定行包含的整數。所有的被 的整數是非負的且不大於1...