#include <bits/stdc++.h>
using namespace std;;
int n,m;
char a[503][503];
const int dir[4][2]={{0,1},{1,0},{0,-1},{-1,0}};
int dfs(int r,int c)
{
a[r][c]='1';
for (int i=0;i<4;i++)
{
int nextr=r+dir[i][0];
int nextc=c+dir[i][1];
if(nextr>=1&&nextr<=n&&nextc>=1&&nextr<=m&&a[nextr][nextc]=='0')
dfs(nextr,nextc);
}
}
int main()
{
cin >>n>>m;
for (int i=1;i<=n;i++)
{
for (int j=1;j<=m;j++)
cin >>a[i][j];
}
for (int i=1;i<=n;i++)
{
for (int j=1;j<=m;j++)
if (1==i||n==i||1==j||j==n)
if ('0'==a[i][j])
dfs(i,j);
}
int s=0;
for (int i=1;i<=n;i++)
{
for (int j=1;j<=m;j++)
{
if ('0'==a[i][j])
s++;
}
}
cout <<s;
}
求dalao帮我看看