#include<bits/stdc++.h>
using namespace std;
int d[4][2]={-1,0,0,1,1,0,0,-1};
bool vis[510][510];
char o[510][510];
int n=0,m=0,cnt;
struct node{
int x;
int y;
};
queue<node> q;
void bfs(int x,int y){
q.push({x,y});
vis[x][y]=1;
while(!q.empty()){
node a=q.front();
q.pop();
o[a.x][a.y]='2';
for(int i=0;i<4;i++){
int dx=a.x+d[i][0];
int dy=a.y+d[i][1];
if(o[dx][dy]!='*'&&vis[dx][dy]==0&&dx<=x+1&&dy<=y+1&&dx>=0&&dy>=0){
vis[dx][dy]=1;
q.push({dx,dy});
}
}
}
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>o[i][j];
}
}
bfs(0,0);
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(o[i][j]=='0') cnt++;
}
}
cout<<cnt;
return 0;
}
这是全部代码,不知道为什么这道题就死活找不出问题