怎么mle了
查看原帖
怎么mle了
1176359
Hhy140516楼主2024/8/28 16:08

50pts求调(玄关)

#include<bits/stdc++.h>
using namespace std;
int a[105][105] , n , m , u[105][105] ;
bool f[105][105] ;
int dfs(int x , int y)
{
	if( x < 1 || y < 1 || x > n || y > m )
	{
		return 0 ;
	}
	if(u[x][y]) return u[x][y] ;
	int _1 = 0 , _2 = 0 , _3 = 0 , _4 = 0 ;
	if( a[x - 1][y] <= a[x][y] )//上
	{
		_1 = dfs(x - 1 , y) ;
	}
	if( a[x + 1][y] <= a[x][y] )//下
	{
		_2 = dfs(x + 1 , y) ;
	}
	if( a[x][y - 1] <= a[x][y] )//左
	{
		_3 = dfs(x , y - 1) ;
	}
	if( a[x][y + 1] <= a[x][y] )//右
	{
		_4 = dfs(x , y + 1) ;
	}
	u[x][y] = max(_1 , max(_2 , max(_3 , _4))) + 1 ;
	return u[x][y] ;
}
int main()
{
	int maxn = 0 ;
	cin >> n >> m ;
	for( int i = 1 ; i <= n ; i++ )
	{
		for( int j = 1 ; j <= m ; j++ ) cin >> a[i][j] ;
	}
	for( int i = 1 ; i <= n ; i++ )
	{
		for( int j = 1 ; j <= m ; j++ ) 
		{
			int r = dfs(i , j) ;
			maxn = max(maxn , r) ;
			//cout << r << " " ;
		}
		//cout << "\n" ;
	}
	cout << maxn ;
    return 0 ;
}
2024/8/28 16:08
加载中...