洛谷 1434 滑雪(記憶化搜尋)

2021-08-13 22:33:07 字數 860 閱讀 5851

思路

用h[i][j]表示雪坡的高度,f[i][j]為到達此處的最長滑坡。

**

#

include

#define

r(i,a,b) for (int i=a;i<=b;i++)//迴圈

#define

pk putchar(32)//空格

#define

ph putchar(10)//換行

using

namespace

std;int t,n,m;

int h[101][101],ans,f[101][101];

intmax

(int

x,int

y)int

min(

intx,

inty)

;//向四個方向擴充套件

short dy[4]=;//同上

void

read

(int

&a)//輸入流

void

write

(int

x)//輸出流

if (x)

write(x/10);

else

return;

putchar(x%10+48);

}int

dfs(

intx,

inty)//搜尋

f[x][y]=t;//儲存路徑

return t;//返回

}int

main

() write(ans);//輸出

}

洛谷P1434 滑雪 記憶化搜尋

題目 題意 給乙個矩陣,矩陣中的數字代表海拔高度。現在要找一條最長路徑,使得路徑上的海拔是遞減的。思路 如果從點 i,j 出發的最長遞減路徑已知 假設是s 那麼如果從點 x,y 可以到達點 i,j 路徑s一定也包含在從點 x,y 出發的最長遞減路徑中。因此我們用乙個陣列記錄從某一點開始的最長遞減路徑...

洛谷 P1434 滑雪 dfs 記憶化搜尋

記憶化搜尋 和斐波那契數列一樣搜尋過的直接用陣列打表儲存下來,記錄下來。首先,這題為什麼會想到記憶化?在dfs每種情況是,可能這個點之前已經搜過了,沒必要再去搜尋了,因此不如儲存記住,就沒必要再去dfs了。本題的主要思路 先去想dfs怎麼做 這題每個點出發有可能,所以我們每個點都要開始dfs,最後取...

搜尋 洛谷 P1434滑雪

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