本文共 720 字,大约阅读时间需要 2 分钟。
此题运用功能强大的 ~~暴力搜索~~
记忆化搜索才是重点!!! 然而,这是一道经典的DP问题 如果我们用$dis[i][j]$来表示坐标为$(i,j)$时的高度 $cnt[i][j]$ 是我们的记忆化数组 在合法的前提下,就有状态转移方程:$dis[i][j]=max(dis[i-1][j],dis[i][j-1],dis[i+1][j],dis[i][j+1])$
好啦,直接上代码吧:其实挺暴力: $2^{33……}$#include#include #include using namespace std;//头文件不说啥int dis[100][100];int cnt[100][100];int row,col;//行列数inline int DP(int i, int j)//状态转移{ int max1=0; if(cnt[i][j]>0) return cnt[i][j];//记忆化,如果被搜过,跳就好 //判断dis[i][j-1]是否合法 if(j-1>=0)//边界条件 if(dis[i][j]>dis[i][j-1])//转移条件 if(max1 dis[i][j+1]) if(max1 =0) if(dis[i][j]>dis[i-1][j]) if(max1 dis[i+1][j]) if(max1
转载地址:http://cccxo.baihongyu.com/