洛谷 P1434 SHOI2002 滑雪

2021-10-04 22:30:41 字數 1244 閱讀 5888

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

乙個人可以從某個點滑向上下左右相鄰四個點之一,當且僅當高度會減小。在上面的例子中,一條可行的滑坡為 2424-1717-1616-11(從 2424 開始,在 11 結束)。當然 2525-2424-2323-\ldots…-33-22-11 更長。事實上,這是最長的一條。

輸入的第一行為表示區域的二維陣列的行數 rr 和列數 cc。下面是 rr 行,每行有 cc 個數,代表高度(兩個數字之間用 11 個空格間隔)。

輸出區域中最長滑坡的長度。

輸入 #1複製

5 5

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

輸出 #1複製

25
對於 100\%100% 的資料,1\leq r,c\leq 1001≤r,c≤100。

1【記憶化搜尋】

#include

#include

#include

#include

using namespace std;

const int n = 105;

int a[n][n];

int dx = ;

int dy = ;

int d[n][n];

int n, m;

int dfs(int x, int y, int fa)  

return d[x][y] = (res + 1);

} int main()

}for(int i = 0; i < n; i++)

}cout << res << endl;

return 0;

}解法2 線性動態規劃

這是一道動態規劃題, 待補充

洛谷P1434 SHOI2002 滑雪

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

洛谷 P1434 SHOI2002 滑雪

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

洛谷 P1434 SHOI2002 滑雪

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