Lake Counting POJ

来源:互联网 发布:不教翠羽遇萧峰 知乎 编辑:程序博客网 时间:2024/04/29 00:56

简单dfs

求有几块水

#include <cstdio>#include <algorithm>using namespace std;int n,m,num;char mp[110][110];void dfs(int x,int y) {if (x<0 || y<0 || x>=n || y>=m) return;if (mp[x][y]=='.') return;mp[x][y]='.';for (int dx=-1;dx<=1;dx++) {     //八方向的写法 for (int dy=-1;dy<=1;dy++) {dfs(x+dx,y+dy);}} return;}int main(){while (~scanf ("%d%d",&n,&m)) {for (int i=0;i<n;i++)    scanf ("%s",mp[i]);num=0;for (int i=0;i<n;i++) {for (int j=0;j<m;j++) {if (mp[i][j]=='W') {num++;dfs(i,j);}}}printf ("%d\n",num);}return 0;}


0 0