30分求助
查看原帖
30分求助
520777
LaoXu666楼主2023/2/11 11:04

代码

#include<bits/stdc++.h>
using namespace std;
#define int long long
int cnt=0,maxcnt=0x8000000000000000;
int h[105][105],r,c;
int dx[4]={1,-1,0,0};
int dy[4]={0,0,-1,1};
void dfs(int x,int y){
	cnt++;
	//bool flag=false;
	for(int i=0;i<4;i++){
		int xx=x+dx[i];
		int yy=y+dy[i];
		if(xx>0 && yy>0 && xx<r && yy<c && h[xx][yy]<h[x][y]){
			//flag=true;	
			dfs(xx,yy);
			cnt--;
		}
		else{
			if(cnt>maxcnt){
				maxcnt=cnt;
				//return;
			}
		}
	}
}
signed main(){
	//;
	cin>>r>>c;
	for(int i=0;i<r;i++){
		for(int j=0;j<c;j++){
			cin>>h[r][c];
		}
	}
	for(int i=0;i<r;i++){
		for(int j=0;j<c;j++){
			dfs(i,j);
		}
	}
	cout<<maxcnt;
}

第2、3、4点AC,其他WA

2023/2/11 11:04
加载中...