hdu1253胜利大逃亡 (BFS)
来源:互联网 发布:网络连接电视怎么连接 编辑:程序博客网 时间:2024/06/18 02:28
题目链接:
http://acm.hdu.edu.cn/webcontest/contest_showproblem.php?cid=11691&pid=1005&ojid=0
解析:
本题就是一个三维的迷宫,只要把方向改成6个(上,下,左,右,前,后),再套BFS模板
#include<cstdio>#include<iostream>#include<cstring>#include<queue>using namespace std;#define MAXN 60#define inf 999999999typedef struct local{int z; //表示第三维坐标int x,y; int time;}loca;int direction[6][3]={{1,0,0},{0,1,0},{-1,0,0},{0,-1,0},{0,0,1},{0,0,-1}};typedef struct Graph{int graph[MAXN][MAXN];}gra;gra map[MAXN];gra visit[MAXN];int n,m,s,ans,A,T;int check(int x,int y,int z){if(visit[z].graph[x][y]==0&&x>=1&&x<=n&&y>=1&&y<=m&&z>=1&&z<=A&&map[z].graph[x][y]==0){return 1;}return 0;}void BFS(loca start){queue<loca>step;int i;loca tmp;visit[start.z].graph[start.x][start.y]=1;step.push(start);while(step.size()){tmp=step.front();if(tmp.z==A&&tmp.x==n&&tmp.y==m&&tmp.time<=T){ans=tmp.time;break;}if(tmp.time>T)break;step.pop();loca oth;int x,y,z;for(i=0;i<6;i++){x=tmp.x+direction[i][0];y=tmp.y+direction[i][1];z=tmp.z+direction[i][2];if(check(x,y,z)){oth.time=tmp.time+1;oth.x=x;oth.y=y;oth.z=z;step.push(oth);visit[z].graph[x][y]=1;}}}}int main(){int i,j,s1,s2,t,k;loca start;scanf("%d",&t);while(t--){scanf("%d%d%d%d",&A,&n,&m,&T);memset(visit,0,sizeof(visit));for(i=1;i<=A;i++){for(j=1;j<=n;j++){for(k=1;k<=m;k++){scanf("%d",&map[i].graph[j][k]);}}}ans=inf;start.x=1;start.y=1;start.z=1;start.time=0;BFS(start);if(ans==inf) printf("-1\n");else printf("%d\n",ans);}return 0;}
阅读全文
0 0
- hdu1253 胜利大逃亡(三维bfs)
- hdu1253 胜利大逃亡(BFS)
- HDU1253 胜利大逃亡 (BFS)
- hdu1253胜利大逃亡 (BFS)
- hdu1253胜利大逃亡(bfs)
- HDU1253:胜利大逃亡(BFS)
- hdu1253胜利大逃亡 (BFS)
- HDU1253:胜利大逃亡(BFS)
- HDU1253 胜利大逃亡 BFS
- HDU1253 胜利大逃亡【BFS】
- HDU1253 胜利大逃亡 BFS
- hdu1253胜利大逃亡bfs
- 【BFS】HDU1253胜利大逃亡
- HDU1253:胜利大逃亡(BFS)
- HDU1253 胜利大逃亡(BFS)
- hdu1253胜利大逃亡(bfs)
- HDU1253 胜利大逃亡(BFS)
- hdu1253(胜利大逃亡)
- WEB 集群与负载均衡(一)基本概念-上
- RxJava2.0使用(三)
- BeautifulSoup学习笔记7
- 微信小程序 WeUi.wxss
- npm cnpm
- hdu1253胜利大逃亡 (BFS)
- JavaScript实现的可变动态数字键盘控件三种方式
- CodeForces 660 E.Different Subsets For All Tuples(组合数学)
- SpringAOP术语详解
- spring quartz定时器的简单配置使用以及常见问题解答
- java字符串类型引用与字符类型引用的面试案例
- Android——Fragment中键盘遮挡问题的解决方案
- springboot prop 优先级
- SpringMVC之HandlerMapping和HandlerAdapter