赞
踩
- #include<iostream>
- #include<cstring>
- using namespace std;
- const int N=310;
- int s[N][N],f[N][N];
- int v1[4]={1,0,-1,0},v2[4]={0,1,0,-1};
- int r,c;
- int dp(int i,int j)
- {
- int &v=f[i][j];
- if(v!=-1) return v;
- v=1;
- for(int k=0;k<4;k++)
- {
- int a=i+v1[k],b=j+v2[k];
- if(a>=0&&a<=r-1&&b>=0&&b<=c-1&&s[i][j]>s[a][b])
- {
- v=max(v,dp(a,b)+1);
- }
- }
- return v;
- }
- int main()
- {
- cin>>r>>c;
- memset(f,-1,sizeof(f));
- for(int i=0;i<r;i++)
- {
- for(int j=0;j<c;j++) cin>>s[i][j];
- }
- int res=0;
- for(int i=0;i<r;i++)
- {
- for(int j=0;j<c;j++)
- {
- res=max(res,dp(i,j));
- }
- }
- cout<<res;
- return 0;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。