现在的位置: 首页 > 综合 > 正文

Oil Deposits

2012年11月30日 ⁄ 综合 ⁄ 共 598字 ⁄ 字号 评论关闭
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<iostream>
using namespace std;
char map[21][21];
int M,N,res;
int xx[]={0,0,1,-1,-1,1,-1,1};
int yy[]={1,-1,0,0,1,-1,-1,1};
int fun(int x,int y)
{
 if(x<0||y<0||x>=N||y>=M)
   return 0;
   return 1;
}
void DFS(int x,int y)
{
  int i,j,x1,y1;
  map[x][y]='*';
  for(i=0;i<8;i++)
  {
    x1=x+xx[i];
    y1=y+yy[i];
    if(map[x1][y1]=='@'&&fun(x1,y1))
    {
      DFS(x1,y1);
    }
  }   
  
}
int main( )
{
  while(scanf("%d%d",&N,&M),N||M)
  {
   int i,j,a,b;
   res=0;
   getchar();
  
   for(i=0;i<N;i++)
    for(j=0;j<M;j++)
      cin>>map[i][j];
   
  
  
   for(i=0;i<N;i++)
   {
    for(j=0;j<M;j++)
      if(map[i][j]=='@')
      {
        res++;
        DFS(i,j);
      }
     
    }
   printf("%d\n",res);
  }
   
   return 0;
}
注意输入格式。。其它的跟上面那题一样。

抱歉!评论已关闭.