HDU 1240 Asteroids!(BFS)
来源:互联网 发布:帝国cms商城模板 编辑:程序博客网 时间:2024/06/04 15:10
HDU 1240 Asteroids!(BFS)
http://acm.hdu.edu.cn/showproblem.php?pid=1240
题意:
给你一个n*n*n的三维网格,并且给出初始和终点,要你求最短路径.
分析:
很简单的三维BFS,直接算即可.注意细节.
AC代码:
#include<cstdio>#include<cstring>#include<queue>using namespace std;const int maxn=15;int dr[]={-1,1,0,0,0,0};//前后左右上下int dc[]={0,0,-1,1,0,0};int dh[]={0,0,0,0,-1,1};bool vis[maxn][maxn][maxn];int dist[maxn][maxn][maxn]; //之前把dist也定义成了bool变量char map[maxn][maxn][maxn];struct Node{ int r,c,h; Node(int r,int c,int h):r(r),c(c),h(h){}};int n;int r1,c1,h1,r2,c2,h2;int BFS(){ queue<Node> Q; memset(vis,0,sizeof(vis)); dist[r1][c1][h1]=0; vis[r1][c1][h1]=true; if(r1==r2&&c1==c2&&h1==h2) return 0; Q.push(Node(r1,c1,h1)); while(!Q.empty()) { Node node=Q.front();Q.pop(); int r=node.r,c=node.c,h=node.h; for(int d=0;d<6;d++) //错误,先前写成了d<4了 { int nr=r+dr[d],nc=c+dc[d],nh=h+dh[d]; if(nr>=0&&nr<n&&nc>=0&&nc<n&&nh>=0&&nh<n&&!vis[nr][nc][nh]&&map[nh][nr][nc]=='O') { vis[nr][nc][nh]=true; dist[nr][nc][nh]=dist[r][c][h]+1; Q.push(Node(nr,nc,nh)); if(nr==r2&&nc==c2&&nh==h2) return dist[nr][nc][nh]; } } } return -1;}int main(){ char str[100]; while(scanf("%s%d",str,&n)==2) { for(int h=0;h<n;h++) for(int r=0;r<n;r++) scanf("%s",map[h][r]); scanf("%d%d%d%d%d%d",&c1,&r1,&h1,&c2,&r2,&h2); scanf("%s",str); int ans=BFS(); if(ans==-1) printf("NO ROUTE\n"); else printf("%d %d\n",n,ans); } return 0;}
0 0
- hdu 1240 Asteroids BFS
- hdu 1240 Asteroids!bfs
- HDU 1240 Asteroids!(BFS)
- hdu 1240 Asteroids!(BFS)
- HDU 1240 Asteroids! 【BFS】
- hdu 1240 Asteroids! (bfs)
- hdu 1240 Asteroids!【BFS】
- HDU 1240 Asteroids!(BFS)
- HDU 1240 Asteroids!【BFS】
- hdu 1240 Asteroids!(BFS)
- hdu 1240 Asteroids! (三维bfs)
- HDU-#1240 Asteroids!(BFS)
- HDU 1240 Asteroids! 三维空间BFS
- BFS--- HDU 1240 Asteroids! 广度优先搜索
- POJ 2225 && HDU 1240 Asteroids!(bfs)
- 题解:HDU 1240: Asteroids! (DFS 或 BFS)
- HDU 1240 Asteroids! (三维BFS)
- HDU 1240 Asteroids! (三维BFS)
- 黑马程序员——交通灯学习日记
- 总结
- 百度质量部电面有感
- 1033.继续XXX定律
- eclipse从数据库逆向生成Hibernate实体类(eclipse中反向生成hibernate实体类+jpa注释)
- HDU 1240 Asteroids!(BFS)
- editplus配置python开发环境
- 并查集
- JS学习之路(三)
- 南阳理工OJ_题目1023 还是回文
- Java虚拟机工作原理详解
- 背景音乐提高能力找回自我
- 截取framebuffer中数据
- adb研究