Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

这么标准的BFS,错的很诡异啊。。。WA无数次

Posted by y08zxx at 2009-08-18 16:40:00 on Problem 2251
#include <iostream>
using namespace std;

struct node
{
	int x,y,z;
}que[3000];
char map[40][40][40];
int use[40][40][40];
int dis[40][40][40];
int d[6][3]={{-1,0,0},{1,0,0},{0,-1,0},{0,1,0},{0,0,-1},{0,0,1}};
int r,c,stages,sx,sy,sz,ex,ey,ez;

int bfs()
{
	int i,front,rear,curx,cury,curz;
	que[0].x=sx;
	que[0].y=sy;
	que[0].z=sz;
	use[sz][sx][sy]=1;
	front=0;
	rear=1;
	memset(que,'\0',sizeof(que));
	while(front!=rear)
	{
		curx=que[front].x;
		cury=que[front].y;
		curz=que[front].z;
		for(i=0;i<6;i++)
		{
			if(curz+d[i][0]>=0&&curz+d[i][0]<stages&&curx+d[i][1]>=0&&curx+d[i][1]<r&&cury+d[i][2]>=0&&cury+d[i][2]<c&&use[curz+d[i][0]][curx+d[i][1]][cury+d[i][2]]==0&&map[curz+d[i][0]][curx+d[i][1]][cury+d[i][2]]!='#')
			{
				use[curz+d[i][0]][curx+d[i][1]][cury+d[i][2]]=1;
				dis[curz+d[i][0]][curx+d[i][1]][cury+d[i][2]]=dis[curz][curx][cury]+1;
				if(map[curz+d[i][0]][curx+d[i][1]][cury+d[i][2]]=='E')
					return 1;
				que[rear].x=curx+d[i][1];
				que[rear].y=cury+d[i][2];
				que[rear].z=curz+d[i][0];
				rear++;
			}
		}
		front++;
	}
	return 0;
}

int main()
{
	int i,j,k;
	while(cin>>stages>>r>>c)
	{
		if(stages==0&&r==0&&c==0)
			return 0;
		for(i=0;i<stages;i++)
		{
			for(j=0;j<r;j++)
			{
				for(k=0;k<c;k++)
				{
					cin>>map[i][j][k];
					if(map[i][j][k]=='S')
					{
						sx=j;
						sy=k;
						sz=i;
					}
					if(map[i][j][k]=='E')
					{
						ex=j;
						ey=k;
						ez=i;
					}
				}
			}
		}
		memset(use,0,sizeof(use));
		memset(dis,0,sizeof(dis));
		if(bfs())
			cout<<"Escaped in "<<dis[ez][ex][ey]<<" minute(s)."<<endl;
		else
			cout<<"Trapped!"<<endl;
	}
	return 0;
}

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator