标签:poj1088
#include <iostream> #include <map> #include <string> #include <cstdio> #include <sstream> #include <cstring> #include <vector> #include <cmath> #define N 110 int a,b,step=0; int anw=0; int moun[N][N]; int dp[N][N]; int dir[4][2]={{1,0},{0,1},{-1,0},{0,-1}}; using namespace std; int dfs(int curx,int cury){ int nextx,nexty,steps=1; if(dp[curx][cury]>1) return dp[curx][cury]; for(int i=0;i<4;i++) { nextx=curx+dir[i][0]; nexty=cury+dir[i][1]; if(nextx>=0&&nextx<a&&nexty>=0&&nexty<b&&moun[nextx][nexty]<moun[curx][cury]) { dp[curx][cury] = dfs(nextx,nexty)+1; if(dp[curx][cury]>steps){ steps=dp[curx][cury]; } } } dp[curx][cury]=steps; return steps; } int main(){ scanf("%d %d",&a,&b); anw=0; memset(dp,0,sizeof(dp)); for(int i=0;i<a;i++){ for(int j=0;j<b;j++){ scanf("%d",&moun[i][j]); dp[i][j]=0; } } for(int i=0;i<a;i++){ for(int j=0;j<b;j++) { step=dfs(i,j); if(step>anw) anw=step; } } printf("%d\n",anw); }
poj1088 滑雪(dfs、dp优化),布布扣,bubuko.com
标签:poj1088
原文地址:http://blog.csdn.net/enterpine/article/details/38515813