搜索dfs迷宫通关

来源:互联网 发布:炒面面包知乎 编辑:程序博客网 时间:2024/06/10 04:01

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

搜索dfs

Hdu1312

#include

int map[30][30];

int t,n,m;

int sx[4]={0,0,-1,1};

int sy[4]={-1,1,0,0};

void dfs(int h,int l)

{

    inti,hx,hy;

    t++;

   map[h][l]='@';

   for(i=0;i<4;i++)

    {

       hx=h+sx[i];

       hy=l+sy[i];

       if(hx>=1&&hx<=m&&hy>=1&&hy<=n&&map[hx][hy]=='.')

           dfs(hx,hy);

    }

}

int main()

{

    inta,b,x,y;

   while(scanf("%d%d",&n,&m)!=EOF)

    {

       if(n==0&&m==0)break;

       for(a=1;a<=m;a++)

       {

           getchar();

           for(b=1;b<=n;b++)

           {

               scanf("%c",&map[a][b]);

               if(map[a][b]=='@')

               {

                   x=a;

                   y=b;

               }

           }

       }

       t=0;

       dfs(x,y);

       printf("%d\n",t);

    }

    return0;

}

0 0
原创粉丝点击