有没有大佬帮帮啊(悲
#include<bits/stdc++.h>
using namespace std;
bool vis[505][505];
char mmap[505][505];
int m,n;
int ans;
int dx[10]={0,1,-1,0, 0};
int dy[10]={0,0, 0,1,-1};
struct node{
int a,b;
}top;
queue<node> q;
bool check(node w){
if(w.a>m||w.b>n||w.a<0||w.b<0)return 0;
if(vis[w.a][w.b]==1)return 0;
if(mmap[w.a][w.b]=='*')return 0;
return 1;
}
void bfs(node in){
q.push(in);
vis[in.a][in.b]=1;
while(!q.empty()){
top=q.front();
q.pop();
for(int i=1;i<=4;i++){
node xy;
xy.a=top.a+dx[i];
xy.b=top.b+dy[i];
if(!check(xy))continue;
vis[xy.a][xy.b]=1;
q.push(xy);
}
}
}
int main(){
scanf("%d%d",&m,&n);
for(int i=1;i<=m;i++){
for(int j=1;j<=n;j++){
cin>>mmap[i][j];
}
}
top.a=0,top.b=0;
bfs(top);
for(int i=1;i<=m;i++){
for(int j=1;j<=n;j++){
if(vis[i][j]==0&&mmap[i][j]=='0'){
ans++;
// cout<<i<<" "<<j<<endl;
}
}
}
printf("%d",ans);
return 0;
}