poj1088

来源:互联网 发布:网络知识安全竞赛2017 编辑:程序博客网 时间:2024/06/05 10:32
#include
using namespace std;
int a[105][105],b[105][105],R,C;
int f(int i,int j){
int max=0;
if(b[i][j]>0) 
  return b[i][j];
if(j-1>=0)
  if(a[i][j]>a[i][j-1])
    max=max>f(i,j-1)? max:f(i,j-1);
if(j+1
 if(a[i][j]>a[i][j+1])
   max=max>f(i,j+1)?max:f(i,j+1);
if(i-1>=0)
 if(a[i][j]>a[i-1][j])
   max=max>f(i-1,j)?max:f(i-1,j);
if(i+1
 if(a[i][j]>a[i+1][j])
   max=max>f(i+1,j)?max:f(i+1,j);
return b[i][j]=max+1;
}
int main(){
cin>>R>>C;
for(int i=0;i
  for(int j=0;j
  cin>>a[i][j];
  b[i][j]=0;
  }
for(int i=0;i
  for(int j=0;j
    f(i,j);
for(int i=0;i
  for(int j=0;j
    b[0][0]=b[0][0]>b[i][j]?b[0][0]:b[i][j];
cout<<b[0][0]<<endl;
return 0;
}
0 0
原创粉丝点击