感觉思路可以,但是只有10分,其他都WA掉了。。。
查看原帖
感觉思路可以,但是只有10分,其他都WA掉了。。。
289275
Terraria楼主2020/7/14 13:45
#include<bits/stdc++.h>
using namespace std;
int r,c,a[109][109],b=0,x,y,m=0,ans=0;
bool zouguo[109][109];
int dfs(int x,int y,int s){
	zouguo[x][y]=true;
	if(a[x][y]<a[x-1][y]&&!a[x-1][y]&&a[x][y]<a[x+1][y]&&!a[x+1][y]&&a[x][y]<a[x][y-1]&&!a[x][y-1]&&a[x][y]<a[x][y+1]&&!a[x][y+1]) return s;
	if(a[x][y]>a[x-1][y]&&!a[x-1][y]) dfs(x-1,y,s+1);
	if(a[x][y]>a[x+1][y]&&!a[x+1][y]) dfs(x+1,y,s+1);
	if(a[x][y]>a[x][y-1]&&!a[x][y-1]) dfs(x,y-1,s+1);
	if(a[x][y]>a[x][y+1]&&!a[x][y+1]) dfs(x,y+1,s+1);
}
int main(){
	cin>>r>>c;
	memset(zouguo,false,sizeof(zouguo));
	for(int i=1;i<=r;i++){
		for(int j=1;j<=c;j++){
			cin>>a[i][j];
		}
	}
	for(int i=1;i<=r;i++){
		for(int j=1;j<=c;j++){
			ans=max(dfs(i,j,0),ans);
		}
	}
	cout<<ans<<endl;
	return 0;
}
2020/7/14 13:45
加载中...