POJ_1979 Red and Black 迷宫类

第一次用递归搜索,感觉怪神奇的,就是记者标记指针和返回 就行啦

View Code
/* 功能Function Description:     POJ-1979

    开发环境Environment:          vc6.0

    技术特点Technique:

    版本Version:

    作者Author:                   jzjz

    日期Date:                     20120817

    备注Notes:                    迷宫搜索

 */



#include<stdio.h>

#include<string.h>

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

int count;

char map[26][26];

int ben[26][26];

int dfs(int x,int y)

{

    int i,xx,yy;

    xx=x;

    yy=y;

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

    {

        x=xx+m[i][0];

        y=yy+m[i][1];

        if(map[x][y]!='0'&&map[x][y]=='.'&&ben[x][y]==0)

        {

            ben[x][y]=1;

            count+=dfs(x,y);

        //    return 1;

        }

    }

    return 1;

}

int main()

{

    int n,m,i,j,x,y;

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

    {

        count=0;

        memset(ben,0,sizeof(ben));

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

        {

            scanf("%s",map[i]+1);

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

            {

                if(map[i][j]=='@')

                {

                    x=i;

                    y=j;

                }

            }

        }

        for(i=0;i<=n+1;++i)

        {

            map[i][0]='0';

            map[i][m+1]='0';

        }

        for(i=0;i<=m+1;++i)

        {

            map[0][i]='0';

            map[n+1][i]='0';

        }

        dfs(x,y);

        printf("%d\n",count+1);

    }

    return 0;

}

 

你可能感兴趣的:(poj)