hdu 1240 Asteroids!
来源:互联网 发布:boyd holbrook 知乎 编辑:程序博客网 时间:2024/06/04 06:23
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1240
BFS水题,注意x,y,z的顺序。
#include<iostream>#include<queue>#include<cstring>#include<algorithm>using namespace std;struct node{ int x,y,z,time;};char s[10];char map[15][15][15];int vis[15][15][15];int n,a,b,c,d,e,f,flag;int dx[]={1,-1,0,0,0,0};int dy[]={0,0,1,-1,0,0};int dz[]={0,0,0,0,1,-1};void bfs(){ int ans; node vw,vn; queue<node>fuck; vn.x=a; vn.y=b; vn.z=c; vn.time=0; fuck.push(vn); while(!fuck.empty()) { vn=fuck.front(); ans=vn.time; fuck.pop(); if(vn.x==d&&vn.y==e&&vn.z==f) { flag=1; break; } else { int p; for(p=0;p<6;p++) { vw.x=vn.x+dx[p]; vw.y=vn.y+dy[p]; vw.z=vn.z+dz[p]; if(vw.x>=0&&vw.y>=0&&vw.z>=0&&vw.x<n&&vw.y<n&&vw.z<n&&map[vw.x][vw.y][vw.z]=='O'&&!vis[vw.x][vw.y][vw.z]) { vis[vw.x][vw.y][vw.z]=1; vw.time=vn.time+1; fuck.push(vw); } } } } if(flag) cout<<n<<" "<<ans<<endl; else cout<<"NO ROUTE"<<endl;}int main(){ while(cin>>s) { int i,j,k; cin>>n; for(i=0;i<n;i++) for(j=0;j<n;j++) for(k=0;k<n;k++) cin>>map[k][j][i]; cin>>a>>b>>c>>d>>e>>f; memset(vis,0,sizeof(vis)); cin>>s; flag=0; bfs(); } return 0;}
- hdu 1240 Asteroids!
- HDU-1240-Asteroids!
- hdu 1240 Asteroids!
- hdu 1240 Asteroids!
- Hdu 1240 Asteroids!
- hdu 1240 Asteroids!
- hdu 1240 Asteroids!
- HDU 1240 Asteroids!
- hdu 1240 Asteroids BFS
- HDU 1240 Asteroids!
- hdu 1240 Asteroids!
- hdu-1240-Asteroids!
- HDU 1240 Asteroids!
- hdu 1240 Asteroids!bfs
- Asteroids! HDU 1240
- HDU 1240 Asteroids!(BFS)
- hdu 1240 Asteroids!(BFS)
- HDU 1240 Asteroids!
- 【数据结构】网易2012校园招聘题目--平衡二叉树的插入问题
- android SurfaceView初次使用错误解决办法 (二)
- 【转载】Apache查看连接数和限制当前的连接数
- Evolution3D中的Billboard系统
- sql server 数据库改名
- hdu 1240 Asteroids!
- hdu~3501~欧拉函数
- 三星第三季度利润73亿美元 同比增长近100%
- unity3d模型制作规范v1.0
- VC6.0在win7环境下代码提示智能化
- php时区问题
- ruby on rails 继续ing
- 纹理过滤相关内容
- GridView和DataTable的数据提取