• HDU 1240 Asteroids!


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

    给这道题跪了,z是x,x是y,y是z,囧

    View Code
    #include <iostream>
    using namespace std ;
    char map[15][15][15] ;
    int dp[15][15][15] ;
    int q[15*15*15][3] ;
    int n ;
    int sx,sy,sz ;
    int ex,ey,ez ;
    void bfs()
    {
        int x,y,z,xx,yy,zz ;
        int front=0,rear=1 ;
        int tab[][3]={1,0,0,-1,0,0,0,1,0,0,-1,0,0,0,1,0,0,-1} ;
        q[0][0]=sx,q[0][1]=sy,q[0][2]=sz ;
        dp[sx][sy][sz]=0 ;
        while(front<rear)
        {
            x=q[front][0],y=q[front][1],z=q[front][2] ;
            front++ ;
            for(int i=0;i<6;i++)
            {
                xx=x+tab[i][0],yy=y+tab[i][1],zz=z+tab[i][2] ;
                if(xx<0 || xx==n)continue ;
                if(yy<0 || yy==n)continue ;
                if(zz<0 || zz==n)continue ;
                if(map[zz][xx][yy]=='X')continue ;
                if(dp[xx][yy][zz]!=-1)continue ;
                dp[xx][yy][zz]=dp[x][y][z]+1 ;
                q[rear][0]=xx,q[rear][1]=yy,q[rear][2]=zz ;
                rear++ ;
            }
        }
    }
    int main()
    {
        while(~scanf("%*s%d",&n))
        {
            for(int i=0;i<n;i++)
                for(int j=0;j<n;j++)
                    scanf("%s",map[i][j]) ;
            scanf("%d%d%d",&sx,&sy,&sz) ;
            scanf("%d%d%d%*s",&ex,&ey,&ez) ;
            memset(dp,-1,sizeof(dp)) ;
            bfs() ;
            if(dp[ex][ey][ez]==-1)
                puts("NO ROUTE") ;
            else
                printf("%d %d\n",n,dp[ex][ey][ez]) ;
        }
        return 0 ;
    }
  • 相关阅读:
    Linux安装MySql
    Tomcat9配置SSL证书
    Linux安装Tomcat
    VMware安装Centos8
    Linux安装JDK
    mysql中utf8和utf8mb4区别
    MVVM模式
    深入浅析Node.js单线程模型
    同步异步阻塞非阻塞
    v-model
  • 原文地址:https://www.cnblogs.com/xiaohongmao/p/2541185.html
Copyright © 2020-2023  润新知