POJ 1088 DP 記憶化搜尋

2021-06-25 18:55:28 字數 468 閱讀 2942

題意:給出山的高度圖,求出最長的一條下降路線。

思路:很容易就想到了用dp,但是很難寫出遞推的順序。當然,我們可以記錄座標,按照高度進行排序,再dp,但是這樣的代價是不是有點大呢。

所以,我們要用記憶化搜尋來完成這件事情。其實在狀態轉移的過程中,就隱含了dp的順序。

**如下:

#include #include #include using namespace std;

const int max = 200;

int dx = ;

int dy = ;

int dp[max][max];

int a[max][max];

int r,c;

int dfs(int x, int y)

}return dp[x][y] = len+1;

}int main(void)

poj1088 dp 記憶化搜尋 (入門好題)

題目意思很簡單,一開始我直接dfs深搜,超時果果的,看了題解以後,學習了記憶化搜尋,就是記錄下已經求出的當前結點的最大值,在之後訪問到這個節點時,就能直接呼叫結果,減少重複計算。是一道好題。以下為 include include include include using namespace std...

poj 1088 滑雪(記憶化搜尋 dp)

description michael喜歡滑雪百這並不奇怪,因為滑雪的確很刺激。可是為了獲得速度,滑的區域必須向下傾斜,而且當你滑到坡底,你不得不再次走上坡或者等待公升降機來載你。michael想知道載乙個區域中最長底滑坡。區域由乙個二維陣列給出。陣列的每個數字代表點的高度。下面是乙個例子 1 2 ...

POJ 1088 滑雪 DP 記憶化搜尋

input 輸入的第一行表示區域的行數r和列數c 1 r,c 100 下面是r行,每行有c個整數,代表高度h,0 h 10000。output 輸出最長區域的長度。sample input 5 5 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8...