【例题 6-12 UVA - 572 】Oil Deposits
【链接】 我是链接,点我呀:)
【题意】
【题解】
dfs..【代码】
#include <bits/stdc++.h>
using namespace std;
const int N = 100;
const int dx[8] = {-1,-1,-1,0,0,1,1,1};
const int dy[8] = {-1,0,1,-1,1,-1,0,1};
int n,m;
string s[N+10];
bool bo[N+10][N+10];
void dfs(int x,int y){
if (x <0 || x >=n || y<0 || y>=m || s[x][y]=='*') return;
if (bo[x][y]) return;
bo[x][y] = true;
for (int i = 0;i < 8;i++)
dfs(x+dx[i],y+dy[i]);
}
int main(){
// freopen("rush.txt","r",stdin);
while(~scanf("%d%d",&n,&m) && n){
memset(bo,0,sizeof bo);
for (int i = 0;i < n;i++) cin >> s[i];
int cnt = 0;
for (int i = 0;i < n;i++)
for (int j = 0;j < m;j++)
if (!bo[i][j] && s[i][j]!='*'){
dfs(i,j);
cnt++;
}
printf("%d\n",cnt);
}
return 0;
}