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