時間限制
: 1000 ms
記憶體限制
: 65536 kb
提交數: 312
通過數: 139
小明喜歡滑雪,因為滑雪的確很刺激,可是為了獲得速度,滑的區域必須向下傾斜,當小明滑到坡底,不得不再次走上坡或等著***來載他,小明想知道在乙個區域中最長的滑坡。滑坡的長度由滑過點的個數來計算,區域由乙個二維陣列給出,陣列的每個數字代表點的高度。下面是乙個例子:
11615141321724231231825221141920211056789
12345161718196152425207142322218131211109
乙個人可以從某個點滑向上下左右相鄰四個點之一,當且僅當高度減小,在上面的例子中,一條可行的滑坡為
25-24-17-16-1
(從25
開始到1
結束),當然
25-24……2-1
更長,事實上這是最長的一條。
輸入的第一行為表示區域的二維陣列的行數
r和列數c(
1≤r、
c≤100
),下面是
r行,每行有
c個數代表高度。
輸出區域中最長的滑坡長度。
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
25
no設f[i][j]為到i,j為止的最長長度
記憶化搜尋,如果滿足周圍四個點低於其點(且在範圍內)則遞迴+1
狀態轉移方程 f[i][j]=max+1;
#includeusing namespace std;
int dx[5]=,//座標x的增量
dy[5]=;//座標y的增量
long f[105][105],a[105][105];
long i,j,n,m,t;
int search(int x,int y) //求出到[x,y]的最長路徑
}f[x][y]=t;
return t;
}int main()
cout
}
記憶化搜尋 DP 滑雪
description michael喜歡滑雪百這並不奇怪,因為滑雪的確很刺激。可是為了獲得速度,滑的區域必須向下傾斜,而且當你滑到坡底,你不得不再次走上坡或者等待公升降機來載你。michael想知道載乙個區域中最長底滑坡。區域由乙個二維陣列給出。陣列的每個數字代表點的高度。下面是乙個例子 1 2 ...
滑雪 dp 記憶化搜尋
給定乙個r行c列的矩陣,表示乙個矩形網格滑雪場。矩陣中第 i 行第 j 列的點表示滑雪場的第 i 行第 j 列區域的高度。乙個人從滑雪場中的某個區域內出發,每次可以向上下左右任意乙個方向滑動乙個單位距離。當然,乙個人能夠滑動到某相鄰區域的前提是該區域的高度低於自己目前所在區域的高度。下面給出乙個矩陣...
DP 記憶化搜尋 滑雪
給定乙個r行c列的矩陣,表示乙個矩形網格滑雪場。矩陣中第 i 行第 j 列的點表示滑雪場的第 i 行第 j 列區域的高度。乙個人從滑雪場中的某個區域內出發,每次可以向上下左右任意乙個方向滑動乙個單位距離。當然,乙個人能夠滑動到某相鄰區域的前提是該區域的高度低於自己目前所在區域的高度。下面給出乙個矩陣...