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

2021-07-09 20:14:46 字數 421 閱讀 8566

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

以下為**:

#include #include #include #include using namespace std;

int r,c,a[150][150],len[150][150];

int xr=;

int yr=;

int dfs(int x,int y)

len[x][y]=sum;

return sum;

}int main()

printf("%d\n",ret);

}return 0;

}

POJ 1088 DP 記憶化搜尋

題意 給出山的高度圖,求出最長的一條下降路線。思路 很容易就想到了用dp,但是很難寫出遞推的順序。當然,我們可以記錄座標,按照高度進行排序,再dp,但是這樣的代價是不是有點大呢。所以,我們要用記憶化搜尋來完成這件事情。其實在狀態轉移的過程中,就隱含了dp的順序。如下 include include ...

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