poj 1088 滑雪_记忆化搜索

来源:互联网 发布:数据产品经理面试题目 编辑:程序博客网 时间:2024/06/07 04:03

题意:略

直接用记忆化搜索就行了

#include<cstdio>#include<iostream>using namespace std;int n,m;int map[105][105];int len[105][105]={0};int dp(int x,int y){int max,temp;if(len[x][y])return len[x][y];max=0;if(x+1<n&&map[x][y]>map[x+1][y]){temp=dp(x+1,y)+1;if(max<temp)            max=temp;}if(x-1>=0&&map[x][y]>map[x-1][y]){temp=dp(x-1,y)+1;if(max<temp)            max=temp;}if(y+1<m&&map[x][y]>map[x][y+1]){temp=dp(x,y+1)+1;if(max<temp)            max=temp;}if(y-1>=0&&map[x][y]>map[x][y-1]){temp=dp(x,y-1)+1;if(max<temp)            max=temp;}return max;}int main(){int i,j,maxlen=0;scanf("%d%d",&n,&m);for(i=0;i<n;i++)for(j=0;j<m;j++)scanf("%d",&map[i][j]);for(i=0;i<n;i++){for(j=0;j<m;j++){len[i][j]=dp(i,j);if(maxlen<len[i][j])maxlen=len[i][j];}}printf("%d\n",maxlen+1);return 0;}