michael喜歡滑雪百這並不奇怪, 因為滑雪的確很刺激。可是為了獲得速度,滑的區域必須向下傾斜,而且當你滑到坡底,你不得不再次走上坡或者等待公升降機來載你。michael想知道載乙個區域中最長底滑坡。區域由乙個二維陣列給出。陣列的每個數字代表點的高度。題意:在給定區域內找出一列遞減的序列,輸出長度即可。下面是乙個例子 1
2345
1617
1819615
2425207
1423
2221813
1211109
乙個人可以從某個點滑向上下左右相鄰四個點之一,當且僅當高度減小。在上面的例子中,一條可滑行的滑坡為24-17-16-1。當然25-24-23-...-3-2-1更長。事實上,這是最長的一條。
input
輸入的第一行表示區域的行數r和列數c(
1<= r,c <= 100)。下面是r行,每行有c個整數,代表高度h,0
<=h<=10000
。output
輸出最長區域的長度。
sample input55
1234
5161718196
1524
2520714
2322218
1312
1110
9sample output
25
思路:這一題之前寫過兩遍,是利用dfs進行搜尋記錄長度。
注意:記憶化搜尋的本質是遇到已經計算過的點直接返回該值即可,不需要進行標記。但是為啥返回的時候步數不用-1我也不知道。。
先上之前dfs過的**:
1 #include2 #include3 #includeview code4using
namespace
std;56
intaa,bb;
7int a[110][110];8
int ss[110][110];9
10int dir[4][2]= ,,,};
11int dfs(int x,int
y)1226}
27}28return
ss[x][y];29}
30int
main()
3141}42
43int ans=-1;44
for(int i=0; i)
4551
}52 cout<1
<
53return0;
54 }
另外一種寫法:
由於今天做題目碰到一題需要記錄路徑的,發現用dfs寫再通過回溯好像是沒法實現,所以換了一種寫法寫這道題,但是思路還是和dfs的差不多。
這一題記錄好座標後需要進行排序,一定要排序,不懂得話可以用
2 3
6 5 4
3 2 1這組例子來測試一下結果
必須要排序,從大到小或者從小到的都可以,控制好後面**的比較就可以了
我的**是從小到大排序,所以在後面實現的時候找的從當前該點出發,找四周小於該點的
因為從小到大比較,所以每個點的狀態都來自於前乙個比它小的點,所以從小到大排序,從大的往小的上面找,有點dp的感覺
1 #include2 #include3 #include4 #include5using
namespace
std;
6const
int n=110;7
//h減小
8int
dp[n][n];
9int
a[n][n];
10int dir[4][2]=,,,};
1112
13struct
node
14e[n*n];
1920
intcmp1(node xx,node yy)
2124
intmain()
2540
}41 sort(e,e+p,cmp1);//必須要排序,從大到小或者從小到的都可以,控制好後面**的比較就可以了
42//我的**是從小到大排序,所以在後面實現的時候找的從當前該點出發,找四周小於該點的
43//因為從小到大比較,所以每個點的狀態都來自於前乙個比它小的點,所以從小到大排序,從大的往小的上面找,有點dp的感覺
44int
pp,qq,ww;
45int maxx=-1;46
for(int i=0;i)
4760
}61 maxx=max(maxx,dp[pp][qq]);62}
63 printf("
%d\n
",maxx);
64return0;
65 }
POJ 1088 滑雪 記憶化搜尋
滑雪 time limit 1000ms memory limit 65536k total submissions 79619 accepted 29637 description michael喜歡滑雪百這並不奇怪,因為滑雪的確很刺激。可是為了獲得速度,滑的區域必須向下傾斜,而且當你滑到坡底,你...
POJ 1088 滑雪 記憶化搜尋
description michael喜歡滑雪百這並不奇怪,因為滑雪的確很刺激。可是為了獲得速度,滑的區域必須向下傾斜,而且當你滑到坡底,你不得不再次走上坡或者等待公升降機來載你。michael想知道載乙個區域中最長底滑坡。區域由乙個二維陣列給出。陣列的每個數字代表點的高度。下面是乙個例子 1 2 ...
POJ 1088 滑雪 記憶化搜尋
滑雪 time limit 1000ms memory limit 65536k total submissions 84463 accepted 31618 description michael喜歡滑雪百這並不奇怪,因為滑雪的確很刺激。可是為了獲得速度,滑的區域必須向下傾斜,而且當你滑到坡底,你...