#include<iostream>
#include<fstream>
#include<queue>
using namespace std;
int a[100][100];
int main(){
//ifstream cin("1.txt");
int m,n;
while(true){
cin>>m>>n;
if(m==0)
break;
string s;
//初始化
int u[m][n];//是否走到过
for(int i=0;i<m;++i){
cin>>s;
for(int j=0;j<n;++j){
u[i][j]=0;
if(s[j]=='*')
a[i][j]=0;
else
a[i][j]=1;
}
}
//找油田
int total=0;
queue<int> qm;
queue<int> qn;
for(int i=0;i<m;++i){
for(int j=0;j<n;++j){
if(u[i][j]==0&&a[i][j]==1){
total++;
//他能走到的都设置为1
u[i][j]=1;
qm.push(i);
qn.push(j);
while(!qm.empty()){
int dir[8][2]={{-1,-1},{0,-1},{1,-1},{-1,0},{1,0},{-1,1},{0,1},{1,1}};
int m0=qm.front();
qm.pop();
int n0=qn.front();
qn.pop();
for(int k=0;k<8;++k){
int m1=m0+dir[k][0];
int n1=n0+dir[k][1];
if(m1>=0&&m1<m&&n1>=0&&n1<n){
if(u[m1][n1]==0&&a[m1][n1]==1){
u[m1][n1]=1;
qm.push(m1);
qn.push(n1);
}
}
}
}
}
}
}
cout<<total<<endl;
}
return 0;
}
poj 1562
最新推荐文章于 2019-01-15 16:56:05 发布