⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 2799085_ac_0ms_240k.cpp

📁 北大大牛代码 1240道题的原代码 超级权威
💻 CPP
字号:
#include <stdio.h>
#include <string.h>
#include <queue>

using namespace std;

int l, r, c;
char map[31][31][31];
int visited[31][31][31];
int sti, stj, stk;
int mov[][3] = {{1,0,0},{-1,0,0},{0,1,0},{0,-1,0},{0,0,1},{0,0,-1}};

struct node
{
	int i, j, k;
	int way;
};

int valid(int i,int j,int k)
{
	if(i<0||i>=l||j<0||j>=r||k<0||k>=c)
		return 0;
	return 1;
}

void bfs()
{
	int i, j, k;
	int l;
	node t, p;
	queue <node> que;

	memset(visited,0,sizeof(visited));
	visited[sti][stj][stk] = 1;
	t.i = sti;t.j = stj;t.k = stk;t.way = 0;
	que.push(t);
	while(!que.empty())
	{
		t = que.front();
		que.pop();
		for(l = 0; l < 6; l++)
		{
			i = t.i + mov[l][0];
			j = t.j + mov[l][1];
			k = t.k + mov[l][2];
			if (valid(i,j,k)&&!visited[i][j][k]&&map[i][j][k]!='#')
			{
				p.i = i;p.j = j;p.k = k;p.way = t.way+1;
				visited[i][j][k] = 1;
				if(map[i][j][k]=='E')
				{
					printf("Escaped in %d minute(s).\n",p.way);
					return ;
				}
				que.push(p);
			}
		}
	}
	puts("Trapped!");
}

int main()
{
	int i, j, k;

	while(scanf("%d%d%d",&l,&r,&c),l)
	{
		for(i = 0; i < l; i++)
		{
			for(j = 0; j < r; j++)
			{
				scanf("%s",map[i][j]);
				for(k = 0; k < c; k++)
					if(map[i][j][k]=='S')
						sti = i,stj = j,stk = k;
			}
		}
		bfs();
	}
	return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -