一道简单的求最大黑色区域面积
遇到了不可思议的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;
}