記憶化搜尋練習
神奇鏈結
輸入描述 input description
輸入檔案
第1行: 兩個數字r,c(1<=r,c<=100),表示矩陣的行列。
第2..r+1行:每行c個數,表示這個矩陣。
輸出描述 output description
輸出檔案
僅一行: 輸出1個整數,表示可以滑行的最大長度。
樣例輸入 sample input
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
樣例輸出 sample output
25資料範圍及提示 data size & hint
1sdp[i][j]表示從i,j出發最遠到達的距離
則dp[i][j]=max(dp[a][b]+1,dp[i][j])
a,b和i,j相鄰並且這個位置的數要比i,j位置的數小才是合法的
這樣很難用遞推來實現,所以我們考慮用記憶化搜尋。
注意要把這兩個記錄答案的變數初始化為1,因為就算周圍都沒有合法的數,它最遠走到的距離也是1(它本身)。
**如下:
#include
#include
#include
#include
using
namespace
std;
const
int maxn=100+50;
int dp[maxn][maxn];
int maps[maxn][maxn];
int dx[4]=,
dy[4]=;
int n,m;
int dfs(int i,int j)
dp[i][j]=ans;
return ans;
}int main()
滑雪 記憶化搜尋
from silence 滑雪 背景 background 成成第一次模擬賽 第三道 描述 description 輸入格式 input format 輸入檔案 第1行 兩個數字r,c 1 r,c 100 表示矩陣的行列。第2.r 1行 每行c個數,表示這個矩陣。輸出格式 output format...
記憶化搜尋 滑雪
題目描述 michael喜歡滑雪這並不奇怪,因為滑雪的確很刺激。可是為了獲得速度,滑的區域必須向下傾斜,而且當你滑到坡底,你不得不再次走上坡或者等待公升降機來載你。michael想知道載乙個區域中最長底滑坡。區域由乙個二維陣列給出。陣列的每個數字代表點的高度。下面是乙個例子 1 2 3 4 5 16...
滑雪 記憶化搜尋
trs喜歡滑雪。他來到了乙個滑雪場,這個滑雪場是乙個矩形,為了簡便,我們用r行c列的矩陣來表示每塊地形。為了得到更快的速度,滑行的路線必須向下傾斜。例如樣例中的那個矩形,可以從某個點滑向上下左右四個相鄰的點之一。例如24 17 16 1,其實25 24 23 3 2 1更長,事實上這是最長的一條。輸...