#include <bits/stdc++.h>
using namespace std;
int n,r;
int dx[4]={0,0,-1,1};
int dy[4]={-1,1,0,0};
int wizhi[101][101];
int memory[101][101];
int search( int x , int y ){
int lei=0;
for (int i=0;i<4;i++){
int newx=x+dx[i];
int newy=y+dy[i];
if( newx>0 && newy>0 && newx<= n && newy <= r && wizhi[newx][newy] < wizhi[x][y] )
{
int temp;
if( memory[newx][newy]!=0) temp= memory[newx][newy];
else temp=search( x+dx[i] , y+dy[i]) ;
if(temp >lei) lei=temp;
}
}
memory[x][y]=lei+1;
return lei+1;
}
int main(){
cin>>n>>r;
for(int i=1;i<=n;i++){
for(int j=1;j<=r;j++){
cin>>wizhi[i][j];
}
}
memset( memory, 0,sizeof(memory));
int MAX_B=0,MAX_A;
for(int i=1;i<=n;i++){
for(int j=1;j<=r;j++){
MAX_A=search(i,j);
if(MAX_A>MAX_B)MAX_B=MAX_A;
}
}
cout<<MAX_B<<endl;
return 0;
}
题解2
最新推荐文章于 2023-01-02 11:10:45 发布