样例2过,但1不过,悬关
查看原帖
样例2过,但1不过,悬关
965189
_yzy_楼主2023/11/8 20:34

代码:

#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;
}
2023/11/8 20:34
加载中...