代码如下:
#include<iostream>
using namespace std;
char a[505][505];
int n,m;
void dfs(int x,int y){
a[x][y]='-';
if(a[x+1][y]=='0'&&x<=n)
dfs(x+1,y);
if(a[x-1][y]=='0'&&x>=0)
dfs(x-1,y);
if(a[x][y+1]=='0'&&y<=m)
dfs(x,y+1);
if(a[x][y-1]=='0'&&y>=0)
dfs(x,y-1);
return;
}
int main()
{
cin>>n>>m;
for(int i=0; i<=n; i++)
for(int j=0; j<=m; j++)
a[i][j]='0';
for(int i=1; i<=n; i++)
for(int j=1; j<=m; j++)
cin>>a[i][j];
dfs(0,0);
int c=0;
for(int i=1; i<=n; i++)
for(int j=1; j<=m; j++)
if(a[i][j]=='0')
c++;
cout<<c;
return 0;
}
评测记录