HDU 1253 胜利大逃亡(三维数组+bfs)
来源:互联网 发布:英国做律师 知乎 编辑:程序博客网 时间:2024/05/16 10:23
http://acm.hdu.edu.cn/showproblem.PHP?pid=1253
题意就不多说了 迷宫类问题 用bfs 即可
AC代码:
#include <stdio.h> #include <queue> #include <string.h> using namespace std; int A,B,C,T; int map[55][55][55]; int vis[55][55][55]; int dirx[]={0,0,0,0,1,-1}; int diry[]={0,0,1,-1,0,0}; int dirz[]={1,-1,0,0,0,0}; int flag; struct node{ int x; int y; int z; int step; }; int judge(int x,int y,int z){ if (x>=0&&x<A&&y>=0&&y<B&&z>=0&&z<C&&vis[x][y][z]==0&&map[x][y][z]==0) return 1; return 0; } void bfs(){ queue<node>Q; node a; a.x=0; a.y=0; a.z=0; a.step=0; vis[0][0][0]=1; Q.push(a); flag=1; while (!Q.empty()){ a=Q.front(); Q.pop(); if (a.step>T)//刚开始没加这个判断 超时了 好多次 加了以后 1950ms 险过 { break; } if (a.x==A-1&&a.y==B-1&&a.z==C-1&&a.step<=T){ printf ("%d\n",a.step); flag=0; break; } for (int i=0;i<6;i++){ node b; b=a; b.x+=dirx[i]; b.y+=diry[i]; b.z+=dirz[i]; if (judge(b.x,b.y,b.z)){ b.step++; vis[b.x][b.y][b.z]=1; Q.push(b); } } } if (flag){ printf ("-1\n"); } } int main (){ int n; scanf ("%d",&n); while (n--){ scanf ("%d%d%d%d",&A,&B,&C,&T); for (int i=0;i<A;i++){ for (int j=0;j<B;j++){ for (int k=0;k<C;k++){ scanf ("%d",&map[i][j][k]); } } } memset(vis,0,sizeof(vis)); bfs(); } return 0; }
0 0
- HDU 1253 胜利大逃亡(三维数组+bfs)
- HDU 1253---胜利大逃亡【BFS三维数组】
- hdu 1253 胜利大逃亡 (三维bfs)
- HDU 1253 胜利大逃亡 三维BFS
- [ACM] hdu 1253 胜利大逃亡 (三维BFS)
- HDU 1253:胜利大逃亡(简单三维BFS)
- HDU 1253-胜利大逃亡(裸三维BFS)
- HDU 1253 胜利大逃亡(三维BFS)
- hdu 1253 胜利大逃亡(三维bfs)
- [ACM] hdu 1253 胜利大逃亡 (三维BFS)
- hdu 1253 胜利大逃亡(BFS,三维)
- hdu 1253 胜利大逃亡(三维bfs+剪枝)
- hdu 1253 胜利大逃亡 简单三维BFS
- hdu 1253 胜利大逃亡 (三维简单bfs+剪枝)
- HDU 1253 胜利大逃亡(简单三维BFS)
- hdu 1253 胜利大逃亡 三维bfs 解题报告
- hdu 胜利大逃亡(BFS)(三维)
- hdu 1253 胜利大逃亡(BFS)
- 配置s2sh框架
- SQLAlchemy复合主键
- Picture
- 【hihocoder】KMP子串数目匹配
- pell数列
- HDU 1253 胜利大逃亡(三维数组+bfs)
- The sum problem
- Yii2表单提交时报错:yii2 Unable to verify your data submission
- 16S rRNA&rDNA测序分析
- 学习笔记:spring配置文件最全约束
- eclipse neon3 安装 gradle插件(改)
- 自己封装一个获取组件的方法
- 海选女主角
- 年龄与疾病(第一种方法)