大佬们帮我看看,我人都傻了
  • 板块学术版
  • 楼主Chen小阳啊
  • 当前回复0
  • 已保存回复0
  • 发布时间2022/1/13 17:45
  • 上次更新2023/10/28 12:25:25
查看原帖
大佬们帮我看看,我人都傻了
557927
Chen小阳啊楼主2022/1/13 17:45
using namespace std;
char a[99][99][99];
int vis[99][99][99];
struct node {
	int x;
	int y;
	int z;
	int t;
};
int xx[7]= {0,0,0,1,-1,0,0},yy[7]= {0,1,-1,0,0,0,0},zz[7]= {0,0,0,0,0,1,-1};
queue<node> s;
int main() {
	node sex;
	int n,m,q;
	cin>>q>>n>>m;
	node nx;
	for(int i=1; i<=q; i++) {
		for(int j=1; j<=n; j++) {
			for(int w=1; w<=m; w++) {
				cin>>a[i][j][w];
				if(a[i][j][w]=='S') {
					nx.t=0;
					nx.x=i;
					nx.y=j;
					nx.z=w;
					vis[i][j][w]=1;
				}
				if(a[i][j][w]=='E') {
					sex.x=i;
					sex.y=j;
					sex.z=w;
					a[i][j][w]=='.';
				}
			}
		}
	}
//	cout<<sex.x<<sex.y<<sex.z; 
	//cout<<nx.x<<' '<<nx.y<<' '<<nx.z<<' ';
/*	for(int w=1; w<=q; w++) {
		for(int j=1; j<=n; j++) {
			for(int i=1; i<=m; i++) {
				cout<<a[i][j][w];
				}
			}
			cout<<endl;
		}*/
	s.push(nx);
	while(!s.empty()) {
		nx=s.front();
		node nnx;
		if(nx.x==sex.x&&nx.y==sex.y&&nx.z==sex.z){
				cout<<nx.t;
				return 0;
			}
		for(int i=1; i<=6; ++i) {
			int dx=nx.x+xx[i],dy=nx.y+yy[i],dz=nx.z+zz[i];
			if(dx>=1&&dx<=q&&dy>=1&&dy<=n&&dz>=1&&dz<=m&&a[dx][dy][dz]!='#'&&!vis[dx][dy][dz]) {
				vis[dx][dy][dz]=1;
				nnx.x=xx[i];
				nnx.y=yy[i];
				nnx.z=zz[i];
				nnx.t=nx.t+1;
				s.push(nnx);
			}
		}
		s.pop();
	}
	cout<<"Trapped!"<<endl;
	return 0;
}

P2360 地下城主 看不出来哪里错了

2022/1/13 17:45
加载中...