P1434求条
  • 板块灌水区
  • 楼主125125A
  • 当前回复5
  • 已保存回复5
  • 发布时间2024/10/25 14:14
  • 上次更新2024/10/25 16:28:51
查看原帖
P1434求条
1038444
125125A楼主2024/10/25 14:14

20pts,

# include <bits/stdc++.h>
using namespace std;

int n, m, a[110][110], f[110][110], ans;

int dfs (int x, int y){
	if (x > n || x < 1 || y > m || y < 1) return 0;
	if (f[x][y] != -1) return f[x][y];
	ans = 0;
	if (a[x][y] > a[x][y + 1]) ans = max (ans, dfs (x, y + 1));
	if (a[x][y] > a[x][y - 1]) ans = max (ans, dfs (x, y - 1));
	if (a[x][y] > a[x + 1][y]) ans = max (ans, dfs (x + 1, y));
	if (a[x][y] > a[x - 1][y]) ans = max (ans, dfs (x - 1, y));
	return f[x][y] = ans + 1;
}

int main (){
	
	scanf ("%d %d", &n, &m);
	
	memset(f, -1, sizeof(f));
	
	for (int i = 1;i <= n;i++){
		for (int j = 1;j <= m;j++){
			ans = max(ans, dfs(i, j));
		}
	}
	
	printf ("%d", ans);
	
	return 0;
}
2024/10/25 14:14
加载中...