HDU 1240 Asteroids!(BFS)
2014-05-21 20:40
330 查看
HDU 1240 Asteroids!(BFS)
http://acm.hdu.edu.cn/showproblem.php?pid=1240
题意:
给你一个n*n*n的三维网格,并且给出初始和终点,要你求最短路径.
分析:
很简单的三维BFS,直接算即可.注意细节.
AC代码:
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; }
相关文章推荐
- hdu 1240 Asteroids! (三维bfs)
- hdu 1240 Asteroids!(BFS)
- HDU - 1240 Asteroids!(BFS)
- HDU-1240 Asteroids! (BFS)这里是一个三维空间,用一个6*3二维数组储存6个不同方向
- POJ 2225 && 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! 广度优先搜索
- hdu 1240 Asteroids! 三维 BFS
- hdu 1240 Asteroids!(bfs)
- hdu1240 Asteroids! (BFS)
- hdu 1240 Asteroids!bfs
- hdu 1240 Asteroids!【BFS】
- hdu 1240 Asteroids! (bfs)