poj1088滑雪(简单DP)

来源:互联网 发布:淘宝充值网易宝可信嘛 编辑:程序博客网 时间:2024/05/19 17:04

最近陷入水题中……sad……


二维数组保存状态,恩


代码在这:

#include <iostream>#include <cstdio>#include <cstring>using namespace std;int s[110][110];int p[110][110];int i,j;int n,m;int max(int a,int b){return a>b?a:b;}int dp(int a,int b){if(p[a][b]>1) return p[a][b];int maxx=1;if(a>1&&s[a][b]>s[a-1][b]) maxx=max(maxx,1+dp(a-1,b));if(a<n&&s[a][b]>s[a+1][b]) maxx=max(maxx,1+dp(a+1,b));if(b>1&&s[a][b]>s[a][b-1]) maxx=max(maxx,1+dp(a,b-1));if(b<m&&s[a][b]>s[a][b+1]) maxx=max(maxx,1+dp(a,b+1));return maxx;}int main(){scanf("%d%d",&n,&m);for(i=1;i<=n;++i)for(j=1;j<=m;++j){scanf("%d",&s[i][j]);p[i][j]=1;}int res=0;for(i=1;i<=n;++i)          for(j=1;j<=m;++j)     {          p[i][j]=dp(i,j);          if(res<p[i][j]) res=p[i][j];     }     printf("%d\n",res);return 0;}


0 0
原创粉丝点击