滑雪求最長路徑

2021-09-16 22:16:32 字數 696 閱讀 2966

輸入檔案

第1行: 兩個數字r,c(1< =r,c< =100),表示矩陣的行列。

第2…r+1行:每行c個數,表示這個矩陣。

輸出檔案

僅一行: 輸出1個整數,表示可以滑行的最大長度

樣例輸入

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

樣例輸出

25解題思路:利用深搜的思想,用遞迴函式進行一層一層搜尋。

**展示:

#include

using namespace std;

int a[1001][1001],b[1001][1001];//a表示這個點,b陣列表示不論從哪一點到此點後所能行走的最大步數

int sousuo(int x,int y,int s)

}if(a[x][y]b[x][y+1])

}if(a[x][y]1)

}if(a[x][y]b[x+1][y])}}

int main(int argc, char const *ar**)

}for(int i=1;i<=m;i++)

}int max=1;

for(int i=1;i<=m;i++)}}

cout

}

最長滑雪路徑

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

動態規劃 求DAG中最長路徑

給定乙個有向無環加權圖,求圖中的最長路徑。該圖中的最長距離為14,即2 4 6 2。首先我們要對有向無環加權圖進行拓撲排序。拓撲排序的意思簡要來說就是將圖中頂點和邊排成乙個線性序列,對於,經拓撲排序後一定滿足vi在vj的前面。拓撲排序的實現方法 首先找出圖中入度為0的點加入拓撲排序後的序列,例子中為...

樹形dp ,求最大路徑權值,最長路徑

include include include include include include include include include include include using namespace std typedef long long ll const int maxn 500005...