关于P1596的求助
查看原帖
关于P1596的求助
292622
童年的小士兵楼主2020/12/16 20:49

代码:

#include <bits/stdc++.h>
using namespace std;
int n, m, ans;
char maze[101][101];
int dir[4][2] = { { 1, 0 }, { 0, 1 }, { -1, 0 }, { 0, -1 } };
bool in(int x, int y) {
	return x >= 0 && x < n && y >= 0 && y < m;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             
}
void dfs(int x, int y) {
	maze[x][y] = '.';
	for (int i = 0; i < 4; i++) {
		int tx = x + dir[i][0];
		int ty = y + dir[i][1];
		if (in(tx, ty) && maze[tx][ty] != '.') {
			maze[tx][ty] = '.';
			dfs(tx, ty);
		}
	}
}
int main() {
	cin >> n >> m;
	for (int i = 0; i < n; i++) {
		for (int j = 0; j < m; j++) {
			cin >> maze[i][j];
		}
	}
	for (int i = 0; i < n; i++) {
		for (int j = 0; j < m; j++) {
			if (maze[i][j] == 'W') {
				dfs(i, j);
				ans++;
			}
		}
	}
	cout << ans;
	return 0;
} 
2020/12/16 20:49
加载中...