ZOJ 1438
来源:互联网 发布:园林景观设计制图软件 编辑:程序博客网 时间:2024/06/07 06:44
这个题目我真是不想说什么了,看了一个中午看懂的题目,然后写了一个中午错误,换种方法还是错误,真的是要被气死了,先放在这里有空来改。。。。。
注意啊这是错误程序
#include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <string>#include <queue>#include <cstring>using namespace std;const int maxn=12;char str[maxn][maxn][maxn];int sc,sr,sz,ec,er,ez;int n;int X[]={0,0,1,-1,0,0};int Y[]={1,-1,0,0,0,0};int Z[]={0,0,0,0,1,-1};int vis[maxn][maxn][maxn];const int INF=1e9;int BFS(){ typedef pair<int ,int> p; typedef pair<p,int> pp; queue<pp> q;// q.clear(); q.push(pp(p(sz,sr),sc)); vis[sz][sr][sc]=0; while(q.size()) { pp p1=q.front(); q.pop(); if(p1.first.first==ez&&p1.first.second==er&&p1.second==ec) break; for(int i=0;i<6;i++) { int mz=p1.first.first+Z[i]; int mx=p1.first.second+X[i]; int mc=p1.second+Y[i]; if(mz>=0&&mz<n&&mx>=0&&mx<n&&mc>=0&&mc<n&&str[mz][mx][mc]!='X'&&vis[mz][mx][mc]==INF) { q.push(pp(p(mz,mx),mc)); vis[mz][mx][mc]=vis[p1.first.first][p1.first.second][p1.second]+1; } } } return vis[ez][er][ec];}int main(){ string s; while(cin>>s>>n) { memset(str,0,sizeof(str)); memset(vis,0,sizeof(vis)); getchar(); for(int i=0;i<n;i++) { for(int j=0;j<n;j++) { for(int k=0;k<n;k++) { scanf("%c",&str[k][j][i]); vis[i][j][k]=INF; } getchar(); } } scanf("%d%d%d",&sc,&sr,&sz); scanf("%d%d%d",&ec,&er,&ez); vis[sz][sr][sc]=0; string ss; cin>>ss; if(vis[ez][er][ec]!=INF) { printf("%d %d\n",n,vis[ez][er][ec]); } else printf("NO ROUTE\n"); } return 0;}
#include <cstdio>#include <cstdlib>#include <algorithm>#include <iostream>#include <queue>#include <cstring>#include <string>using namespace std;const int maxn=13;char str[maxn][maxn][maxn];int vis[maxn][maxn][maxn];int n;int sx,sy,sz,ex,ey,ez;int X[]={0,0,1,-1,0,0};int Y[]={1,-1,0,0,0,0};int Z[]={0,0,0,0,1,-1};struct Point{ int x,y,z; int num; Point () { int x=0,y=0,z=0; int num=0; }};const int INF=1e8;int BFS(){ queue<Point> q; Point p; p.x=sx,p.y=sy,p.z=sz; p.num=0; q.push(p); while(q.size()) { Point pp=q.front(); q.pop(); if(pp.x==ex&&pp.y==ey&&pp.z==ez) return pp.num; for(int i=0;i<6;i++) { int mx=pp.x+X[i]; int mz=pp.y+Y[i]; int my=pp.z+Z[i]; if(mx>=0&&mx<n&&mz>=0&&mz<n&&my>=0&&my<n&&vis[mx][my][mz]==INF&&str[mx][my][mz]!='X') { Point pq; pq.x=mx,pq.y=my,pq.z=mz; pq.num=pp.num+1; vis[mx][my][mz]=pp.num+1; } } } return -1;}int main(){ string ss; while(cin>>ss>>n) { memset(str,0,sizeof(str)); memset(vis,0,sizeof(vis)); getchar(); for(int i=0;i<n;i++) { for(int j=0;j<n;j++) { for(int k=0;k<n;k++) { scanf("%c",&str[k][j][i]); vis[k][j][i]=INF; } getchar(); } } cin>>sy>>sx>>sz; cin>>ey>>ex>>ez; vis[sy][sx][sz]=0; string s; cin>>s; int temp=BFS(); if(temp!=-1) printf("%d %d\n",n,temp); else printf("NO ROUTE\n"); } return 0;}
0 0
- zoj 1438
- ZOJ 1438
- ZOJ 1438 Asteroids!
- zoj 1438 Asteroids! BFS
- zoj 1438 - Asteroids! 题解
- zoj 1438 Asteroids!
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- ZOJ
- python基础3 集合 三元运算 深浅拷贝 函数
- OpenGL 绘制API统计
- Android 获取本地音乐URI总结
- 50 个 Bootstrap 插件(收藏备用)
- Windows环境下首次安装与使用MYSQL数据库
- ZOJ 1438
- 台湾大学林轩田机器学习基石课程学习笔记9 -- Linear Regression
- Leetcode -- 38. Count and Say
- 尺取法 +POJ 3061
- Android N Graphics之BitmapFactory
- Hibernate_查询_多种查询方式介绍、HQL详解(一)
- Shader Learing(Transparent Shader篇)
- 浅解js中的defaultValue
- 个人网站开发(零):简单介绍