NBUT 動態規劃專題C 滑雪

2021-06-23 02:02:08 字數 926 閱讀 9890

description

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

1  2  3  4 5 

16 17 18 19 6

15 24 25 20 7

14 23 22 21 8

13 12 11 10 9

乙個人可以從某個點滑向上下左右相鄰四個點之一,當且僅當高度減小。在上面的例子中,一條可滑行的滑坡為24-17-16-1。當然25-24-23-...-3-2-1更長。事實上,這是最長的一條。

input

輸入的第一行表示區域的行數r和列數c(1 <= r,c <= 100)。下面是r行,每行有c個整數,代表高度h,0<=h<=10000。

output

輸出最長區域的長度。

我的做法是記憶化搜尋,用的是遞迴的形式。狀態轉移方程也很好寫出來

dp[i]=max,其中i和j相鄰

47ms,和他們0ms比起來,效率還是不夠的。。。

#include

#include

#include

#include

using namespace std;

int dp[110][110];

int mat[110][110];

int dir[4][2]=;

int r,c;

int dfs(int i,int j)

return ans;

}int main()

{while(~scanf("%d%d",&r,&c))

{for(int i=0;i

滑雪(動態規劃)

1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9 乙個人可以從某個點滑向上下左右相鄰四個點之一,當且僅當高度減小。在上面的例子中,一條可滑行的滑坡為24 17 16 1。當然25 24 23 3 2 1更長。事實上,這...

1088 滑雪(動態規劃)

總時間限制 1000ms 記憶體限制 65536kb 描述michael喜歡滑雪百這並不奇怪,因為滑雪的確很刺激。可是為了獲得速度,滑的區域必須向下傾斜,而且當你滑到坡底,你不得不再次走上坡或者等待公升降機來載你。michael想知道載乙個區域中最長的滑坡。區域由乙個二維陣列給出。陣列的每個數字代表...

動態規劃專題

多階段過程轉化為一系列單階段問題,利用各階段之間的關係,逐個求解,創立了解決這類過程優化問題的新方法 動態規劃 個人的理解 就是處於當前決策時要依賴前面的已知情況,將看似 連續無統一標準解決方案 的問題分割成多個 可以商量的 的決策過程。商量就是依靠已知的情況覺得未知 那麼什麼問題才可以用到動態規劃...