思路
用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 ...