20pts,有WA有RE,DFS求调
查看原帖
20pts,有WA有RE,DFS求调
1127615
yangcenyou楼主2024/7/10 16:16
#include <bits/stdc++.h>
using namespace std;
int ans=-114514,cnt=1;
int a[13][13],col[13][13];
void dfs(int n,int m){
	col[n][m]=1;
	if(a[n+1][m]!=-1&&a[n+1][m]<a[n][m]&&!col[n+1][m]){
		cnt++;
		dfs(n+1,m);
	}
	if(a[n-1][m]!=-1&&a[n-1][m]<a[n][m]&&!col[n-1][m]){
		cnt++;
		dfs(n-1,m);
	}
	if(a[n][m+1]!=-1&&a[n][m+1]<a[n][m]&&!col[n+1][m]){
		cnt++;
		dfs(n,m+1);
	}
	if(a[n][m-1]!=-1&&a[n][m-1]<a[n][m]&&!col[n+1][m]){
		cnt++;
		dfs(n,m-1);
	}
	return ;
}
int main(){
	int r,c;
	memset(a,-1,sizeof(a));
	cin>>r>>c;
	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++){
			memset(col,0,sizeof(col));
			cnt=0;
			dfs(i,j);
			ans=max(ans,cnt);
		}
	}
	cout<<ans;
}
2024/7/10 16:16
加载中...