HDU1240 Asteroids!(BFS)
来源:互联网 发布:淘宝店铺出售可靠吗 编辑:程序博客网 时间:2024/05/30 02:51
在这里先说一下,这个程序本来是wa的看了hh_cnyali的神奇dfs方法才ac的
题目大意:
题目给定一个三维空间的大小n,在这个空间中O为空地X为平地,给定起点坐标和终点坐标,求最短路径。
题目思路:三维bfs,注意输入问题,这个问题让我wa了两个小时:
#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>struct node{ int x,y,z,sum;}q[10000];using namespace std;int n,x2,y2,z2,x1,y1,z1,ans,d[6][3]={{0,1,0},{0,-1,0},{1,0,0},{-1,0,0},{0,0,1},{0,0,-1}};//移动坐标char a[11][11][11],s[10];bool ok(int j,int i,int k){ return j>=0&&j<n&&i>=0&&i<n&&k>=0&&k<n;//判断是否可行}int bfs(){//广搜 int f=0,p=1; a[x1][y1][z1]='X';//将起点设为墙 q[0].x=x1;q[0].y=y1;q[0].z=z1;q[0].sum=0;//入队列 while(f<p){ if(q[f].x==x2 && q[f].y==y2 && q[f].z==z2){//判断是否达到目标 printf("%d %d\n",n,q[f].sum);//输出 return 1; break; } for(int i=0;i<6;i++){ int x3=q[f].x+d[i][1];//注意x,y的d要反过来 int y3=q[f].y+d[i][0]; int z3=q[f].z+d[i][2]; if(ok(x3,y3,z3) && a[x3][y3][z3]=='O'){ a[x3][y3][z3]='X';//将走过的设为'X' q[p].x=x3;q[p].y=y3;q[p].z=z3;q[p++].sum=q[f].sum+1;//入队列 } } f++;//f指向下一个 } return 0;}int main(void){ int i,j,k,m; while(scanf("%s%d",s,&n)!=EOF){ ans=0; memset(a,0,sizeof(a)); for(i=0;i<n;i++) for(j=0;j<n;j++) for(k=0;k<n;k++) cin >>a[k][j][i]; //注意!!! 是kji不是ijk scanf("%d%d%d%d%d%d",&x1,&y1,&z1,&x2,&y2,&z2); scanf("%s",s); ans=bfs(); if(ans==0)//当不行时输出NO ROUTE printf("NO ROUTE\n"); } return 0;}
3 0
- HDU1240:Asteroids!(BFS)
- hdu1240 Asteroids! (BFS)
- HDU1240 Asteroids!(BFS)
- hdu1240 Asteroids!--DFS & BFS
- HDU1240 Asteroids!(BFS)
- BFS---HDU1240 Asteroids!
- HDU1240(BFS)Asteroids!
- Hdu1240 Asteroids!(三维BFS)
- Hdu1240 Asteroids!(BFS) ---Java版
- hdu1240 Asteroids!(三维bfs水)
- HDU1240 Asteroids!
- hdu1240 Asteroids!
- HDU1240:Asteroids!
- hdu1240 Asteroids!
- hdu1240 Asteroids!
- HDU1240:Asteroids
- ACM-三维BFS之Asteroids!——hdu1240
- HDU1240 Asteroids!-题目意思详解( 三维BFS)
- HttpHelp
- SQL Server存储引擎 - 01. 数据库如何读写数据
- Calculate S(n) (规律题)
- 正则表达式学习笔记
- 剑指Offer:二叉树的镜像
- HDU1240 Asteroids!(BFS)
- 分治法讲解及实例
- 关于通知Notification的基础知识
- Asp.Net 应用程序在IIS发布后无法连接oracle数据库问题的解决方法
- HDU 5612 Baby Ming and Matrix games(dfs)
- poj-1287-Networking【最小生成树】
- 微服务实战:从架构到部署
- MSYS是什么,他与CYGWIN有什么区别?
- apiDoc