60pts,#5#7#8#10WA,求调
查看原帖
60pts,#5#7#8#10WA,求调
1495223
fan_xiaoyi楼主2025/1/22 09:38
#include<bits/stdc++.h>
using namespace std;
int n,m,a[207][207],ans[207][207];
int dx[10]={0,0,0,1,-1};
int dy[10]={0,1,-1,0,0};
int dfs(int x,int y){
	if(ans[x][y]!=-1){
		return ans[x][y];
	}
	for(int i=1;i<=4;i++){
		if(a[x][y]>a[x+dx[i]][y+dy[i]]){
			ans[x][y]=max(ans[x][y],dfs(x+dx[i],y+dy[i])+1);
		}
	}
	return ans[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];
			ans[i][j]=-1;
		}
	}
	int maxans=-1;
	for(int i=1;i<=n;i++){//枚举起点 
		for(int j=1;j<=m;j++){
			ans[i][j]=dfs(i,j);
		}
	}a
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			maxans=max(maxans,ans[i][j]);
		}
	}
	if(maxans!=-1)cout<<maxans;
	else cout<<1;
}
2025/1/22 09:38
加载中...