90分,WA#2,求调
查看原帖
90分,WA#2,求调
748314
yzc001楼主2024/2/22 21:02
#include<bits/stdc++.h>
using namespace std;
int a[105][105],hs[105][105],jy[105][105],r,c,ans;
int wx[4]={1,-1,0,0};
int wy[4]={0,0,1,-1};
int dfs(int x,int y){
	if(jy[x][y])return jy[x][y];
	int nx,ny;
	for(int i=0;i<4;i++){
		nx=x+wx[i];
		ny=y+wy[i];
		if(hs[nx][ny]&&a[nx][ny]<a[x][y]){
			jy[x][y]=max(dfs(nx,ny)+1,jy[x][y]);
		}
	}
	return jy[x][y];
}
signed main() {
	cin>>r>>c;
	for(int i=1;i<=c;i++){
		for(int j=1;j<=r;j++){
			hs[i][j]=1;
			cin>>a[i][j];
		}
	}
	for(int i=1;i<=c;i++){
		for(int j=1;j<=r;j++){
			ans=max(dfs(i,j)+1,ans);
		}
	}
	cout<<ans;
}
2024/2/22 21:02
加载中...