dp 记忆化
用了两个数组,一个记录所有点的数据,一个是dp[i][j]记录每个点的最大距离,当最小时(无法降低时)为1
如25-24-23-……-2-1长度是25(点的数量)
dp的伪代码
f( i, j ){
if dp[i][j]>0
return dp[i][j]
for 点i,j的四个方向{
if 坐标没溢出{
if 可以向那个方向下降
tmp = 1+ f(那个方向的坐标 )
else
tmp=1
}
else
tmp=1
}
维持tmp最大
return dp[i][j]=tmp
}
在主函数中执行|点数|次f函数,同时记录最大的dp[i][j],这个就是最终解