題意:
給你乙個r*c的數字矩陣,要你找出矩陣中一條遞減的最長路徑的長度。即從矩陣的乙個點出發(起點任意),只能走數字遞減的上下左右4格中的一格,能走的最長距離(包括起點).
分析:
首先我們令len[r][c]表示從(r,c)點出發的最長路徑長度.
可以知道如下狀態轉移方程:
len[r][c]= max(len[r+1][c], len[r-1][c], len[r][c-1],len[r][c+1])+1.
注意上面的方程轉移的條件是(r,c)點的數字比它4個方向的數字都大,如果某個方向不滿足該條件,則不可轉移.
如果本題用遞推的方式來做,還不太好做。
ac**:記憶化搜尋
#include #include #include #include using namespace std;
int xx[4]=;
int yy[4]=;
int a[105][105];
int m,n;
int ans,maxn;
int dp[105][105];
int bfs(int x,int y)
}return dp[x][y];
}int main()
}for(int i=1;i<=m;i++)
}cout<
滑雪 DFS 記憶化搜尋
michael喜歡滑雪百這並不奇怪,因為滑雪的確很刺激。可是為了獲得速度,滑的區域必須向下傾斜,而且當你滑到坡底,你不得不再次走上坡或者等待公升降機來載你。michael想知道載乙個區域中最長的滑坡。區域由乙個二維陣列給出。陣列的每個數字代表點的高度。下面是乙個例子 1 2 3 4 5 16 17 ...
dfs 記憶化 滑雪
傳送門 題意 給定乙個r行c列的矩陣,表示乙個矩形網格滑雪場。矩陣中第 i 行第 j 列的點表示滑雪場的第 i 行第 j 列區域的高度。乙個人從滑雪場中的某個區域內出發,每次可以向上下左右任意乙個方向滑動乙個單位距離。當然,乙個人能夠滑動到某相鄰區域的前提是該區域的高度低於自己目前所在區域的高度。資...
滑雪 記憶化搜尋
from silence 滑雪 背景 background 成成第一次模擬賽 第三道 描述 description 輸入格式 input format 輸入檔案 第1行 兩個數字r,c 1 r,c 100 表示矩陣的行列。第2.r 1行 每行c個數,表示這個矩陣。輸出格式 output format...