#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std ;
const int N = 310 ;
int n , m ;
int f[N][N] ;
int h[N][N] ;
int dx[4] = {-1,0,1,0} , dy[4] = {0,1,0,-1} ;
int dp(int x , int y)
{
int &v = f[x][y] ;
if(v != -1) return v ;
v = 1;
for(int i = 0 ; i < 4 ; i ++)
{
int a = x + dx[i] ;
int b = y + dy[i] ;
if(a>=0 && a < n && b >=0 && b < m && h[a][b] < h[x][y])
{
v = max(v , dp(a,b) + 1) ;
}
}
return v ;
}
int main()
{
cin >> n >>m ;
for(int i = 0 ; i < n ; i++)
{
for(int j = 0 ; j < m ; j++)
{
scanf("%d", &h[i][j]);
}
}
memset(f , -1 , sizeof f) ;
int res = 0 ;
for(int i = 0 ; i < n ; i++)
{
for(int j = 0 ; j < m ; j++)
{
res = max(res , dp(i,j)) ;
}
}
cout << res ;
return 0 ;
}
acwing 901 滑雪 2022/05/11
最新推荐文章于 2024-09-02 18:36:16 发布