求助
  • 板块学术版
  • 楼主MDTSF
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/6/7 20:49
  • 上次更新2024/6/8 09:16:18
查看原帖
求助
930075
MDTSF楼主2024/6/7 20:49

一道简单的求最大黑色区域面积

遇到了不可思议的bug

#include<bits/stdc++.h>
using namespace std;

int n,m;bool maps[101][101],vis[101][101],maxx=INT_MIN,cnt;//定义
int go[4][2]={{0,1},{0,-1},{1,0},{-1,0}};

void dfs(int x,int y){
	for (int i=0;i<4;++i){
		int nx=x+go[i][0];
		int ny=y+go[i][1];
		if (maps[nx][ny]==1&&vis[nx][ny]==false){//dfs
			vis[nx][ny]=1;
			printf("[debug]x=%d y=%d cnt=%d maxx=%d\n",x,y,cnt,maxx);//debug
			cnt+=1;//;bug
			printf("[debug]x=%d y=%d cnt=%d maxx=%d\n",x,y,cnt,maxx);//本地调试时cnt加跟没加似的
			dfs(nx,ny);
		}
	}
	
}

int main(){
	cin>>n>>m;
	for (int i=1;i<=n;++i){
		for (int j=1;j<=m;++j){
			cin>>maps[i][j];
		}//输入
	}
	for (int i=1;i<=n;++i){
		for (int j=1;j<=m;++j){
			if (maps[i][j]=1&&vis[i][j]==0){
				vis[i][j]=1;//枚举空位
				dfs(i,j);
				maxx=max(maxx,cnt);
				cnt=1;
			}
		}
	}
	cout<<maxx;//输出
	return 0;
}

2024/6/7 20:49
加载中...