您的位置:首页 > 其它

HDU 1241 Oil Deposits

2012-02-28 18:53 204 查看
一道典型的搜索题。

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
char map[124][124];
int n,m;
int d[8][2] = { -1,-1,0,-1,1,-1,-1,0,1,0,-1,1,0,1,1,1 };
void DFS( int x, int y )
{
for( int i = 0 ; i< 8 ; i++ )
{
int dx = x + d[i][0];
int dy = y + d[i][1];
if( map[dx][dy]=='@' )
{
map[dx][dy]='*';
DFS( dx ,dy );
}
}
}
int main(  )
{
int n,m;
while( scanf( "%d%d",&n,&m ),n!=0||m!=0 )
{
memset( map , 0 ,sizeof( map ) );
for( int i= 1 ; i <= n  ; i++ )
{
scanf( "%s" ,map[i]+1 );
}
int count = 0;
for(int i= 1; i<= n ; i++ )
{
for( int j = 1 ;j<= m ; j++ )
{
if( map[i][j]=='@' )
{
map[i][j]='*';
count++;
DFS(  i , j );
}
}
}
printf( "%d\n",count );
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: