求助
查看原帖
求助
884865
_TG_楼主2023/7/16 21:32

请大佬帮忙挑挑错,本蒟蒻实在是挑不出来了。

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

int n,m,a[105][105],f[105][105];
int dx[4]={0,0,1,-1},dy[4]={1,-1,0,0},xx,yy;
int dfs(int x,int y){
	if(f[x][y])return f[x][y];
    f[x][y]=1;
	for(int k=0;k<4;k++){
		xx=x+dx[k];
		yy=y+dy[k];
		if(xx>0&&xx<=n&&yy>0&&yy<=m){
			if(a[x][y]>a[xx][yy]){
				dfs(xx,yy);
				f[x][y]=max(f[x][y],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];
		}
	}
	int ans=-1;
	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/7/16 21:32
加载中...