#include<bits/stdc++.h>
using namespace std;
int n, m;
char Map[103][103];
int cnt;
int dx[] = {0, 0, 1, -1, -1, 1, 1, -1};
int dy[] = {1, -1, 0, 0, 1, 1, -1, -1};
void dfs(int x, int y) {
for (int i = 0; i < 7; i++) {
int X = x + dx[i];
int Y = y + dy[i];
if (X < 0 || X >= n || Y < 0 || Y >= m) {
continue;
}
if (Map[X][Y] == '.') {
continue;
}
Map[X][Y] = '.';
dfs(X, Y);
}
}
int main() {
cin >> n >> m;
for (int i = 0; i < n; i++) {
cin >> Map[i];
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
if (Map[i][j] == 'W') {
Map[i][j] = '.';
dfs(i, j);
cnt++;
}
}
}
return printf("%d", cnt) * 0;
}
附上第七题数据,P1569_7.in
30 30
...........W.W....W.W......WWW
..WWWW..WWW.....W.....W....W.W
..W.......W.......W.W.WW......
.W...WW.W.......W......WW.....
..WWW.............W......WW...
.W...W.......W..W.W.W.....W...
...WW..W..WWW...WW............
W........W.......W...W..W.....
..W.....................WW..W.
.W.....W.W.....WW.......WW..W.
W....W..W....W.W.W..W....W....
.....WWW...W.W.W.WW.....WW.W..
WW..W....W.W..W..W.W...W......
.W.WW..W...W....W..W..W.......
.W..W..W..W..WW..WW.......WWW.
.....WWW......WW.W..WW..W.W...
W.W..W..W..W.......WWW.WW.W.W.
...W...W.WW...W........W..WW..
....W..W....WW.........W...W.W
WWW.......W.......W...W.WWW...
W.......W.....W.WW.W....WW..WW
W.W..WWW....WW........W.W.....
W.W..W.WW...W............WW.W.
.W.W..W...W...WW.WW.W....W.WW.
.WW.W......W...W...WW..W.W....
..W...W..W..W.W.WWWW..W..W..W.
W.W.WW.....WWWW.W...WWW.....W.
WW..........W.......WWW..WWWW.
W.WWWW...WWW.W.WW..W.W.W...WW.
...W..W.....WWWW..W....W..W...
输出46,我的答案为49,有dalao知道是为什么吗? (话说这markdown怎么换行...)