代码:
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const int N = 510;
struct node{
int x, y;
};
int r, c;
char mg[N][N];
bool vist[N][N];
int dist[N][N];
int dx[4] = {-1, 0, 1, 0};
int dy[4] = {0, 1, 0, -1};
void bfs() {
queue<node> q;
q.push({0, 0});
while (!q.empty()) {
node f = q.front();
q.pop();
for (int d = 0; d < 4; d++) {
int nx = f.x + dx[d];
int ny = f.y + dy[d];
if (nx >= 0 && nx < r && ny >= 0
&& ny < c && !vist[nx][ny] && mg[nx][ny] == '*') {
q.push({nx, ny});
vist[nx][ny] = true;
dist[nx][ny] = dist[f.x][f.y] + 1;
}
}
}
}
int main() {
cin >> r >> c;
for (int i = 0; i < r; i++) {
for (int j = 0; j < c; j++) {
cin >> mg[i][j];
}
}
bfs();
int cnt = 0;
for (int i = 0; i < r; i++) {
for (int j = 0; j < c; j++) {
if (vist[i][j] == false) cnt++;
}
}
cout << cnt;
return 0;
}