简单的模板题
2024-08-13 22:15:56
发布于:浙江
1阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
int n, m, cnt;
char c[101][101];
int dx[] = {1, 1, 1, -1, -1, -1, 0, 0}; //方向数组
int dy[] = {1, 0, -1, 1, 0, -1, 1, -1}; //方向数组
void dfs(int x, int y) {
c[x][y] = '.'; //遍历过的变成土地
for (int i = 0; i < 8; i++) {
int xx = x + dx[i];
int yy = y + dy[i];
if (xx > 0 && yy > 0 && xx <= n && yy <= m && c[xx][yy] == 'W') { //判断
dfs(xx, yy); //递归下一层
}
}
}
int main() {
cin >> n >> m;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
cin >> c[i][j]; //输入
}
}
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
if (c[i][j] == 'W') { //判断如果为水坑
dfs(i, j); //递归调用
cnt++; //cnt++
}
}
}
cout << cnt; //输出cnt
return 0;
}
这里空空如也
有帮助,赞一个