zoukankan      html  css  js  c++  java
  • HDU1253

    View Code
     1 #include<cstdio>
     2 #include<cstdlib>
     3 #include<cstring>
     4 #include<iostream>
     5 #include<queue>
     6 #include<algorithm>
     7 #define N 55
     8 int map[N][N][N];
     9 int a,b,c,maxt,ans;
    10 int fmin(int i,int j){
    11     return i>j?j:i;
    12 }
    13 using namespace std;
    14 struct point {
    15     int x,y,z;
    16     int lev;
    17 };
    18 point p,pp;
    19 queue<point>q;
    20 int dx[6]={0,-1,0,1,0,0};
    21 int dy[6]={-1,0,1,0,0,0};
    22 int dz[6]={0,0,0,0,1,-1};
    23 
    24 void bfs(int sz,int sx,int sy){
    25     int i,j,k,tx,ty,tz;
    26     p.x=sx;
    27     p.y=sy;
    28     p.z=sz;
    29     p.lev=0;
    30     while(!q.empty())
    31         q.pop();
    32     q.push(p);
    33     while(!q.empty()){
    34         p=q.front();
    35         q.pop();
    36         if(p.x==b-1&&p.y==c-1&&p.z==a-1){
    37             ans=fmin(ans,p.lev);
    38         }
    39         for(i=0;i<6;i++){
    40             pp.x=p.x;
    41             pp.y=p.y;
    42             pp.z=p.z;
    43             pp.x+=dx[i];
    44             pp.y+=dy[i];
    45             pp.z+=dz[i];
    46             if(pp.z<0||pp.z>=a||pp.x<0||pp.x>=b||pp.y<0||pp.y>=c||map[pp.z][pp.x][pp.y]==1)
    47                 continue;
    48             map[pp.z][pp.x][pp.y]=1;
    49             pp.lev=p.lev+1;
    50             q.push(pp);
    51         }
    52     }
    53 }
    54 
    55 int main(){
    56     int t,i,j,k;
    57     scanf("%d",&t);
    58     while(t--){
    59         scanf("%d%d%d%d",&a,&b,&c,&maxt);
    60         for(i=0;i<a;i++)
    61             for(j=0;j<b;j++)
    62                 for(k=0;k<c;k++)
    63                     scanf("%d",&map[i][j][k]);
    64         ans=999999;
    65         map[0][0][0]=1;//
    66         bfs(0,0,0);
    67         if(ans<=maxt)
    68             printf("%d\n",ans);
    69         else
    70             printf("-1\n");
    71     }
    72     return 0;
    73 }
    keep moving...
  • 相关阅读:
    URL
    VI,CI,UI
    ubuntu优化使用
    Django入门之自定义页面
    python3 连接SQLserver
    Python3 捕捉异常
    python3 异常处理
    Django入门
    较大型站立会议(交付前两天)--张永组-2014-04-15
    站立会议-2014-04-14
  • 原文地址:https://www.cnblogs.com/xxx0624/p/2624112.html
Copyright © 2011-2022 走看看