Oil Deposits(HD1241)
原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1241
代码:
#include <iostream>
using namespace std;
int row,col;
char map[101][101];
int dir[8][2]={{-1,-1},{-1,0},{-1,1},{0,-1},{0,1},{1,-1},{1,0},{1,1}};
void dfs(int i,int j)
{
int newr,newc;
map[i][j]='*';
for(int k=0;k<8;k++)
{
newr=i+dir[k][0];
newc=j+dir[k][1];
if(newr>=0&&newr<row&&newc>=0&&newc<col&&map[newr][newc]=='@')
dfs(newr,newc);
}
}
int main()
{
int count;
while(cin>>row>>col&&row!=0&&col!=0)
{
for(int i=0;i<row;i++)
for(int j=0;j<col;j++)
cin>>map[i][j];
count=0;
for(int i=0;i<row;i++)
for(int j=0;j<col;j++)
{
if(map[i][j]=='@')
{
dfs(i,j);
count++;
}
}
cout<<count<<endl;
}
return 0;
}

浙公网安备 33010602011771号