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
輸出最長區域的長度。
sample input
5 51 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
sample output
25採用攀登的方式來搜尋最長的滑雪路線
#include
using
namespace std;
const
int maxs =
100;
int x[maxs]
[maxs]
;///x[i][j]記錄了i,j處的高度
int y[maxs]
[maxs]
;///y[i][j]記錄了從i,j處可以向上攀登的最長距離
int m,n;
intdfs
(int i,
int j,
int h)
return y[i]
[j];
}return0;
}int
main()
}int r =0;
for(
int i=
0;icout << r << endl;
return0;
}
深度優先搜尋的幾道題目
感覺還是比動規簡單一些的 但是最近腦子有點糊。首先是要注意鄰接表是有兩種的,在稀疏圖中,最好用vector存每個頂點的邊的資訊,而不是稠密圖中的g x y 第二是步數最少的路徑 存path然後把path拷貝到bestpath 要不然會亂。我犯了很多次傻然後後面debug。這個錯誤很蠢但是我一開始也沒...
DFS 深度優先搜尋經典案例
案例1力扣 員工重要性 class solution 最終返回當前員工和他的下屬的重要度之和 return curimportant public int getimportance vector employees,int id return dfs info,id 案例2 力扣 影象渲染 cla...
經典搜尋演算法 深度優先搜尋 暴力搜尋
訓練題目暴力搜尋題目描述 現有長度為n的數列a和整數m。請編寫乙個程式,判斷a中任意幾個元素相加是否能得到m。a中每個元素只能使用一次。數列a以及用作問題的q個mi由外界輸入,請對每個問題輸出yes或no。輸入 第一行輸入n,第二行輸入代表a的n個整數,第三行輸入q,第四行輸入q個整數mi。輸出 輸...