zoukankan      html  css  js  c++  java
  • HDU 1253 胜利大逃亡

    链接:http://acm.hdu.edu.cn/showproblem.php?pid=1253

    宽度优先搜索:

    #include <iostream>
    #include<cstdio>
    #include<queue>
    #define INF 10000000
    using namespace std;
    class p
    {
    public:
        int x;
        int y;
        int z;
    };
    int maze[55][55][55];           //迷宫
    int d[55][55][55];          //到各个位置的最短距离
    int l,w,h;
    const int dx[]={1,0,-1,0,0,0};
    const int dy[]={0,1,0,-1,0,0};
    const int dz[]={0,0,0,0,1,-1};
    int bfs(void)
    {
        p tem,t;
    
    	int nx,ny,nz;
        queue<p> que;
        for(int i=0;i<h;i++)
            for(int j=0;j<w;j++)
                for(int k=0;k<l;k++)
                    d[i][j][k]=INF;		//初始化为无穷大
    
        tem.x=0;tem.y=0;tem.z=0;
        que.push(tem);				//将起点加入队列
        d[0][0][0]=0;
        while(que.size())
        {
    		tem=que.front();
    		que.pop();
    		if(tem.z==h-1&&tem.x==w-1&&tem.y==l-1)
                break;
            for(int i=0; i<6; i++)
            {
                nz=tem.z + dz[i];
                nx=tem.x + dx[i];
                ny=tem.y + dy[i];
    
                if(nx>=0&&ny>=0&&nz>=0&&nx<w&&ny<l&&nz<h&&maze[nz][nx][ny]==0&&d[nz][nx][ny]==INF)
    			{
                    t.x=nx;
                    t.y=ny;
                    t.z=nz;
    				que.push(t);
    				d[nz][nx][ny]=d[tem.z][tem.x][tem.y]+1;
    
                }
            }
    
        }
    	return d[h-1][w-1][l-1];
    
    
    }
    
    int main()
    {
        //freopen("1.txt","r",stdin);
        int k;
        int t;
        int a,b,c;
        int ans;
        scanf("%d",&k);
        while(k--)
        {
            scanf("%d%d%d%d",&w,&h,&l,&t);
            for(a=0;a<w;a++)
                for(b=0;b<h;b++)
                    for(c=0;c<l;c++)
                        scanf("%d",&maze[b][a][c]);
            ans=bfs();
            if(ans<=t)
                printf("%d
    ",ans);
            else
                printf("-1
    ");
    
    
    
        }
        return 0;
    }


     

  • 相关阅读:
    关于网页代码加密解密保护,保障页面安全
    DS--知识积累
    知识积累
    Nested DollsHDU1677
    CF335B
    HDU2385Stock
    滚动数组处理数据很大的公共子序列问题
    HDU4635
    HDU4638
    HDU4639
  • 原文地址:https://www.cnblogs.com/frankM/p/4399504.html
Copyright © 2011-2022 走看看