书中第32页有解析
#include <iostream> #include <cstdio> #include <cstring> using namespace std; int n,m; char field[110][110]; void dfs(int x, int y) { field[x][y] = '.'; for(int i = -1; i <= 1; i++) { for(int j = -1; j <= 1; j++) { int dx = x + i; int dy = y + j; if(dx < n && dx >= 0 && dy < m && dy >= 0 && field[dx][dy] == 'W') dfs(dx,dy); } } return; } int main() { #ifdef xxz freopen("in.txt","r",stdin); #endif // xxz ios::sync_with_stdio(false);//这句可以加速OI速度 while(cin>>n>>m) { int ans = 0; for(int i = 0; i < n; i++) for(int j = 0; j < m; j++) cin>>field[i][j]; for(int i = 0; i < n; i++) for(int j = 0; j < m; j++) { if(field[i][j] == 'W') { dfs(i,j); ans++; } } cout<<ans<<endl; } return 0; }
时间: 2024-10-12 06:53:15