正文

Asteroids! hdu12402009-07-15 08:47:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/1mi2/45195.html

分享到:

很简单的一道广度优先搜索题 #include<stdio.h>int a[11][11][11];int mark[11][11][11];int f[1011][4];int d[6][3]={{0,0,1},{0,1,0},{1,0,0,},{0,0,-1},{0,-1,0},{-1,0,0}};//六个方向int main(){    char str[10],c;    int N,i,j,k;    int p,rear,flag,dd;    int si,sj,sk,di,dj,dk;    while(scanf("%s",str)!=EOF)    {        scanf("%d",&N);    //    scanf("%c",&c);        for(i=0;i<N;i++)        {        //    scanf("%c",&c);            for(j=0;j<N;j++)            {            scanf("%c",&c);                for(k=0;k<N;k++)                {                    mark[i][j][k]=0;                    scanf("%c",&c);                  if(c=='X')                        a[i][j][k]=-1;                  else if(c=='O') a[i][j][k]=1;                }            }        }//for i        scanf("%d%d%d",&si,&sj,&sk);        scanf("%d%d%d",&di,&dj,&dk);        scanf("%c",&c);        scanf("%s",str);        f[0][0]=si;        f[0][1]=sj;        f[0][2]=sk;        f[0][3]=0;        p=0;        rear=0;        flag=0;        if(si==di&&sj==dj&&sk==dk)        {            printf("%d 0\n",N);            continue;        }        while(p<=rear&&flag==0)        {            for(dd=0;dd<6;dd++)            {                si=f[p][0]+d[dd][0];                sj=f[p][1]+d[dd][1];                sk=f[p][2]+d[dd][2];                if(si==di&&sj==dj&&sk==dk)                {                    printf("%d %d\n",N,f[p][3]+1);                    flag =1;                    break;                }                if(si>=0&&si<N&&sj>=0&&sj<N&&sk>=0&&sk<N&&a[si][sj][sk]==1&&mark[si][sj][sk]==0)                {                    mark[si][sj][sk]=1;                    rear++;                                f[rear][0]=si;                    f[rear][1]=sj;                    f[rear][2]=sk;                    f[rear][3]=f[p][3]+1;                }            }            p++;        }        if(p>rear)        {            printf("NO ROUTE\n");        }    }    return 0;}

阅读(980) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册