HDOJ  1312  Red and Black

来源:互联网 发布:java 如何使用瞬态值 编辑:程序博客网 时间:2024/06/16 05:00

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1312

水一样的深搜,,

#include <stdio.h>
#define MAX 20
int n,m,count;
int dri[4][2]={{0,1},{0,-1},{1,0},{-1,0}};
char map[MAX][MAX];
void dfs(int x,int y)
{
   count++;
    intxx,yy;
   map[x][y]='#';
    for(inti=0;i<8;i++)
    {
       xx=x+dri[i][0];
       yy=y+dri[i][1];
       if(xx<0||yy<0||xx>=n||yy>=m)
           continue;
       if(map[xx][yy]=='.')
           dfs(xx,yy);
    }
}
int main()
{
    inti,j,a,b,flag;
   while(scanf("%d%d",&m,&n),n||m)
    {
       count=0;
       flag=1;
       for(i=0;i<n;i++)
       {
           scanf("%s",map[i]);
           for(j=0;flag&&j<m;j++)
           {
               if(map[i][j]=='@')
                   a=i,b=j,flag=0;
           }
       }
       dfs(a,b);
       printf("%d\n",count);
    }
    return0;
}

0 0
原创粉丝点击