AC
2025-10-12 10:55:52
发布于:浙江
0阅读
0回复
0点赞
#include <bits/stdc++.h>
using namespace std;
int n,m;
char mp[505][505];
struct node{
int x,y;
};
queue<node>q;
int dx[]={-1,1,0,0};
int dy[]={0,0,-1,1};
bool vis[505][505];
void bfs(){
q.push({0,0});
vis[0][0]=1;
mp[0][0]='*';
while(!q.empty()){
node t=q.front();
q.pop();
for(int i=0;i<4;i++){
int nx=t.x+dx[i];
int ny=t.y+dy[i];
if(nx>=0&&nx<=n+1&&ny>=0&&ny<=m+1&&mp[nx][ny]!='*'&&vis[nx][ny]==0){
q.push({nx,ny});
vis[nx][ny]=1;
mp[nx][ny]='*';
}
}
}
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>mp[i][j];
}
}
for(int i=0;i<=n+1;i++){
for(int j=0;j<=m+1;j++){
if(i==0||j==0||i==n+1||j==m+1){
mp[i][j]='0';
}
}
}
bfs();
int ans=0;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(mp[i][j]=='0'){
ans++;
}
}
}
cout<<ans;
return 0;
}
这里空空如也







有帮助,赞一个