记搜
查看原帖
记搜
702161
abcaawtq楼主2023/9/23 23:21
#include <bits/stdc++.h>
using namespace std;
const int N = 105;
int a[N][N],f[N][N];
int dx[4] = {1,-1,0,0},dy[4] = {0,0,1,-1};
int n,m,ans = 0,maxn = 0;
int dfs(int x,int y){
	if(f[x][y]) return f[x][y];
	f[x][y] = 1;
	for(int i = 0; i < 4; i ++){
		int xx = x + dx[i],yy = y + dy[i];
		if(xx <= n && yy <= m && xx > 0 && yy > 0 && a[xx][yy] < a[x][y]){
			dfs(xx,yy);
			f[x][y] = max(f[x][x],f[xx][yy] + 1);
		}
	}
	return f[x][y];
}
int main(){
	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 ++){
			 ans = max(ans,dfs(i,j));
		}
	}
	cout << ans ;
	return 0;
}
2023/9/23 23:21
加载中...