題意:給出山的高度圖,求出最長的一條下降路線。
思路:很容易就想到了用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...