hdu《胜利大逃亡》之一失足成千古恨

    技术2022-05-19  23

    郁闷,三维搜索--输出总是0,原来少了个‘%d’,浪费了几个小时!还少删了测试函数,输出竟然是‘jj’。太jj了、

    #include<stdio.h>#include<queue>using namespace std;

    struct Node{ int x; int y; int z; int num;};int map[55][55][55];int mark[55][55][55];int a,b,c,t,sign;int dir[6][3]={{0,0,1},{0,1,0},{1,0,0},{-1,0,0},{0,-1,0},{0,0,-1}};void bfs(){ queue<Node>Q; sign=0; int i; Node s,p,e; s.x=0; s.y=0; s.z=0; s.num=0; Q.push(s); mark[s.x][s.y][s.z]=0; while(!Q.empty()){  p=Q.front();  Q.pop();  for(i=0;i<6;i++){   e.x=p.x+dir[i][0];   e.y=p.y+dir[i][1];   e.z=p.z+dir[i][2];   e.num=p.num+1;   if((e.x>=0&&e.x<a)&&(e.y>=0&&e.y<b)&&(e.z>=0&&e.z<c)&&map[e.x][e.y][e.z]!=1&&mark[e.x][e.y][e.z]==-1){    if(e.x==a-1&&e.y==b-1&&e.z==c-1){     if(e.num<=t){     sign=1;     printf("%d/n",e.num);     return ;          }    }    mark[e.x][e.y][e.z]=0;    Q.push(e);   }  } } if(sign==0)printf("-1/n");}main(){ int i,j,u,k;

     scanf("%d",&k); while(k--){  scanf("%d%d%d%d",&a,&b,&c,&t);//少加了个‘%d’,一失足成千古恨!!!!!!!!    for(i=0;i<a;i++)   for(j=0;j<b;j++)    for(u=0;u<c;u++){     mark[i][j][u]=-1;     scanf("%d",&map[i][j][u]);    }    if(map[a-1][b-1][c-1]==1)

                  {

                         printf("-1/n");

                         continue;

                  }

       if(a==1&&b==1&&c==1){   printf("0/n");   continue; }         bfs(); } return 0;}


    最新回复(0)