hdu1240 Asteroids!
来源:互联网 发布:半正定矩阵怎么理解 编辑:程序博客网 时间:2024/05/20 01:08
http://acm.hdu.edu.cn/showproblem.php?pid=1240
#include<iostream>#include<stdio.h>#include<string.h>#include<queue>using namespace std;int sx,sy,sz,sum,n,ans,ex,ey,ez;int a[6][3]={{0,0,1},{0,0,-1},{0,1,0},{0,-1,0},{1,0,0},{-1,0,0}};char st[11][11][11];int v[11][11][11];struct node{int x,y,z,step;};int bfs(int x,int y,int z){int i;queue<node>q;node cur,next;cur.x=x;cur.y=y;cur.z=z;cur.step=0;//注意这里对于步数的初始化q.push(cur);while(!q.empty()){cur=q.front();q.pop();if(cur.x==ex&&cur.y==ey&&cur.z==ez)return cur.step;//for(i=0;i<6;i++){next=cur;//这里一定要注意,否则输出的结果就不对了next.x=cur.x+a[i][0];next.y=cur.y+a[i][1];next.z=cur.z+a[i][2];if(next.x>=0&&next.x<n&&next.y>=0&&next.y<n&&next.z>=0&&next.z<n&&v[next.x][next.y][next.z]==0&&st[next.x][next.y][next.z]=='O'){v[next.x][next.y][next.z]=1;next.step++;q.push(next);}}}return -1;}int main(){int i,j,z;char s[7],e[7];while(scanf("%s",s)!=EOF){scanf("%d",&n);getchar();memset(v,0,sizeof(v));for(z=0;z<n;z++){for(i=0;i<n;i++){for(j=0;j<n;j++)scanf("%c",&st[i][j][z]);getchar();}}scanf("%d%d%d%d%d%d",&sx,&sy,&sz,&ex,&ey,&ez);//printf("%d %d %d\n",sx,sy,sz);scanf("%s",e);sum=ans=0;v[sx][sy][sz]=1;ans=bfs(sx,sy,sz);if(ans>=0)printf("%d %d\n",n,ans);elseprintf("NO ROUTE\n");}}
0 0
- HDU1240 Asteroids!
- hdu1240 Asteroids!
- HDU1240:Asteroids!
- hdu1240 Asteroids!
- hdu1240 Asteroids!
- HDU1240:Asteroids
- HDU1240:Asteroids!(BFS)
- hdu1240 Asteroids! (BFS)
- Asteroids!(hdu1240,dfs)
- hdu1240——Asteroids!
- HDU1240 Asteroids!(BFS)
- ACM 搜索 hdu1240 Asteroids!
- hdu1240 Asteroids!--DFS & BFS
- HDU1240 Asteroids!(BFS)
- BFS---HDU1240 Asteroids!
- HDU1240(BFS)Asteroids!
- Hdu1240 - Asteroids! - 广度优先搜索
- HDU1240 - Asteroids! (广搜)
- SOAP11和SOAP12的调用关系
- 英文变宽字体的压缩存储和显示
- linux下创建可引导的U盘系统,使用dd命令进行Linux的ghost
- WIN7远程桌面连接方法!
- eclipse环境变量的配置
- hdu1240 Asteroids!
- 网页性能智能优化——Apache扩展mod_pagespeed
- C++面向对象—成员函数与成员变量的实现机制学习笔记(1)
- 《统计学习方法》学习笔记四
- 一套扁平化界面风格的flex 皮肤
- sqlmap参数详细说明
- 基于.net平台下数据库访问类(总结)
- 黑塞矩阵
- 黑马程序员_Java基础_集合框架成员Map