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;
}

 

posted @ 2013-05-24 21:43  supersnow0622  Views(128)  Comments(0)    收藏  举报