C小加

厚德 博学 求真 至善 The bright moon and breeze
posts - 145, comments - 195, trackbacks - 0, articles - 0
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

poj 1562 Oil Deposits 解题报告

Posted on 2011-11-10 18:38 C小加 阅读(1392) 评论(0)  编辑 收藏 引用 所属分类: 解题报告
 简单搜索:DFS

#include
<iostream>
#include
<cstring>
#include
<cstdio>
const int N=101;
char map[N][N];
int n,m,sum;
void dfs(int i,int j)
{
if(map[i][j]!='@'||i<0||j<0||i>=m||j>=n) return;
else
{
   map[i][j]
='*';
   dfs(i
-1,j-1);
   dfs(i
-1,j);
   dfs(i
-1,j+1);
   dfs(i,j
-1);
   dfs(i,j
+1);
   dfs(i
+1,j-1);
   dfs(i
+1,j);
   dfs(i
+1,j+1);
}
}
int main()
{
int i,j;
while(scanf("%d%d",&m,&n)!=EOF)
{
   
if(m==0break;
   sum
=0;
   
for(i=0;i<m;i++)
    scanf(
"%s",map[i]);
   
for(i=0;i<m;i++)
   {
    
for(j=0;j<n;j++)
    {
     
if(map[i][j]=='@')
     {
      dfs(i,j);
        sum
++;
     }
    }
   }
   printf(
"%d\n",sum);
}
return 0;
}

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理