trs喜歡滑雪。他來到了乙個滑雪場,這個滑雪場是乙個矩形,為了簡便,我們用r行c列的矩陣來表示每塊地形。為了得到更快的速度,滑行的路線必須向下傾斜。
例如樣例中的那個矩形,可以從某個點滑向上下左右四個相鄰的點之一。例如24-17-16-1,其實25-24-23…3-2-1更長,事實上這是最長的一條。
輸入檔案
第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
因為從乙個點(i,j)可以向四周比它低的點滑下 所以不難得出
f[i][j]=max(f[i+movex[k]][j+movey[k]])
記憶化搜尋 初始化ans[i][j]值為乙個特殊值 通過檢查值來判斷是否曾經計算過
#include #include #include using namespace std;
int height[110][110],ans[110][110];
int r,c,res=0;
int f(int i,int j)
if(i+1<=r&&height[i][j]>height[i+1][j])
if(j-1>=1&&height[i][j]>height[i][j-1])
if(j+1<=c&&height[i][j]>height[i][j+1])
if(!flag) ans[i][j]=1;
} return ans[i][j]; }
int main()
memset(ans,-1,sizeof(ans));
for(int i=1;i<=r;i++)
for(int j=1;j<=c;j++)
printf("%d\n",res);
return 0;
}
滑雪 記憶化搜尋
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...
滑雪(記憶化搜尋)
michael喜歡滑雪百這並不奇怪,因為滑雪的確很刺激。可是為了獲得速度,滑的區域必須向下傾斜,而且當你滑到坡底,你不得不再次走上坡或者等待公升降機來載你。michael想知道載乙個區域中最長底滑坡。區域由乙個二維陣列給出。陣列的每個數字代表點的高度。下面是乙個例子 1 2 3 4 5 16 17 ...