洛谷题单号:p1596
泛洪算法的学习以及题目的的讲解
代码:
#include <bits/stdc++.h>
using namespace std;
char a[101][101];
int ans;
int n, m;
void dfs(int x, int y) {
a[x][y] = '.';
int dx, dy;
for (int i = -1; i <= 1; i++) {
for (int j = -1; j <= 1; j++) {
dx = x + i;
dy = y + j;
if (!(dx >= 0 && dx <= n && dy >= 0 && dy < m && a[dx][dy] == 'W')) {
continue;
}
dfs(dx, dy);
}
}
return;
}
int main() {
cin >> n >> m;
for (int i = 0; i <= n; i++) {
cin >> a[i];
}
for (int i = 0; i <= n; i++) {
for (int j = 0; j < m; j++) {
if (a[i][j] == 'W') {
dfs(i, j);
ans++;
}
}
}
cout << ans;
return 0;
}
//输入后面记得加上\n表示结束
//仅参考,请勿抄袭!!!!!
//想要考好c++,不是靠抄来的