30分搜索求助
查看原帖
30分搜索求助
483209
abcddca楼主2024/1/14 16:14
#include<bits/stdc++.h>
using namespace std;
int i,j,k,n,m,a[10]={1,-1},a1[10]={0,0,1,-1};
bool l;
int d[1086][1086],b[186][186];
int  dfs(int x,int y){
	if(d[x][y]){
		return d[x][y];
	}
	d[x][y]=1;
	for(int i=0;i<4;i++){
		int xx=x+a[i];
		int yy=y+a1[i];
		if(xx>0&&yy>0&&xx<=n&&yy<=m&&d[xx][yy]<d[x][y]){
			dfs(xx,yy);
			d[x][y]=max(d[x][y],d[xx][yy]+1);
		}
	}
	return d[x][y];
}
int main(){
	cin>>n>>m;
	for(i=1;i<=n;i++){
		for(j=1;j<=m;j++){
			cin>>d[i][j];
		}
	}
	int sum=0;
	for(i=1;i<=n;i++){
		for(j=1;j<=m;j++){
			sum=max(dfs(i,j),sum);
		}
	}
	cout<<sum;
	return 0;
}
2024/1/14 16:14
加载中...