POJ1088 動態規劃

2021-07-04 19:00:02 字數 954 閱讀 6552

題目鏈結

這個題目和最長子序列什麼的極為相似。不過之前都是一維,現在變成二維的了。僅此而已。因此我們可以想辦法把它先變成一維的。

struct nodea[100*100+5];

然後我們可以根據height排序,從最高點開始考慮,,有點貪心的意思。。和單源最短路徑dijkstra相似。

int ma[100+2][100+2][2];

//ma[0] :儲存的是高度

ma[1] :這裡將它作為dp遞迴,儲存的是:到這個點時最長的長度

#include 

#include

#include

#include

#include

using

namespace

std;

struct nodea[100*100+5];

int dx = ;

int dy = ;

int ma[100+2][100+2][2];

int r,c;

bool cmp(const node &a, const node &b)

int main()

}sort(a,a+k,cmp);

int ans = 1;

for(int i = 0; iint maxx = 0;

for(int j =0; j<4; j++)

ma[a[i].r][a[i].c][1] = maxx+1;

ans = max(ans,maxx+1);

}printf("%d\n",ans);

return

0;}

POJ 1088 動態規劃

今天晚上自習學習演算法,這裡就溫故知新寫一篇動歸的部落格 本題題目為漢語,此處就不翻譯了 解題思路 本題按照題意可以很容易的看出這是一道典型的動態規劃的題目。無非就是求出每個點周圍可以達到最大長度的點,依次繼續。本題目比較適合遞迴來進行動態規劃。動態規劃方程 f i j max 1 其中f i j ...

動態規劃 POJ 1088 滑雪

意思就是把所有點存下來,按照高度排個序,然後從小到大列舉,然後判斷當前的點的四個方向有沒有存在經過當前點更優的情況,並且那個點的高度比當前點的高度要高如果存在就更新,因為根據大小排了序,所以不會出現不會出現乙個點重複統計的情況那麼複雜度是o n2 include include include us...

動態規劃 POJ1088 滑雪問題

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