40分WA求助
查看原帖
40分WA求助
809165
The_Wandering_Earth楼主2023/3/26 11:51
#include<bits/stdc++.h>

using namespace std;

int n, m, g[205][205], f[205][205], ans = 1;
int dr[4] = {-1, 1, 0, 0};
int dc[4] = {0, 0, -1, 1};

void dfs(int row, int col); 

signed main()
{
	cin >> n >> m;
	memset(f, -1, sizeof(f));
	for(int i = 1; i <= n; i++)
	{
		for(int j = 1; j <= m; j++)
		{
			cin >> g[i][j];
		}
	}
	for(int i = 1; i <= n; i++)
	{
		for(int j = 1; j <= m; j++)
		{
			dfs(i, j);
		}
	}
	cout << ans;
} 

void dfs(int row, int col)
{
	if(f[row][col] != -1)
	{
		return;
	}
	f[row][col] = 1;
	for(int i = 0; i < 4; i++)
	{
		int r = row + dr[i], c = col + dc[i];
		if(r < 1 || r > n || c < 1 || c > m)
		{
			continue;
		}
		if(g[r][c] < g[row][col] && f[r][c] != 0)
		{
			dfs(r, c);
		}
		f[row][col] = max(f[row][col], f[r][c] + 1);
	}
	ans = max(ans, f[row][col]);
}
2023/3/26 11:51
加载中...