社区讨论

哇为什么这么水的题都WA一个点。醉了

P2360地下城主参与者 2已保存回复 1

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
1 条
当前快照
1 份
快照标识符
@mi6wnop7
此快照首次捕获于
2025/11/20 12:02
4 个月前
此快照最后确认于
2025/11/20 12:02
4 个月前
查看原帖

真的不晓得哪里有问题。感觉题目也没什么坑点啊qwq蓝受

CPP
#include<bits/stdc++.h>
using namespace std;
int minn=9999;
int a,b,c,qi,zi,qj,zj,qk,zk;
int dx[7]={0,0,-1,1,0,0};
int dy[7]={1,-1,0,0,0,0};
int dz[7]={0,0,0,0,1,-1};
int book[35][35][35];
char d[35][35][35];
void bfs(int x,int y,int z,int t){
	if(x>a||y>b||z>c||x<1||y<1||z<1) return ;
	if(d[x][y][z]=='#') return ;
	if(book[x][y][z]) return ;
	if(x==zi&&y==zj&&z==zk){
		if(t<minn) minn=t;
		return ;
	}
	book[x][y][z]=1;
	for(int i=0;i<=5;i++){
		int xx=x+dx[i];
		int yy=y+dy[i];
		int zz=z+dz[i];
		bfs(xx,yy,zz,t+1);
	}
	return ;
}
int main(){
	cin>>a>>b>>c;
	for(int i=1;i<=a;i++)
		for(int j=1;j<=b;j++)
			for(int k=1;k<=c;k++){
				cin>>d[i][j][k];
				if(d[i][j][k]=='S'){
					qi=i;qj=j;qk=k;
				}
				if(d[i][j][k]=='E'){
					zi=i;zj=j;zk=k;
				}
			}
	bfs(qi,qj,qk,0);			
	if(minn!=9999)cout<<"Escaped in "<<minn<<" minute(s).";
	else cout<<"Trapped!";
	return 0;
}

回复

1 条回复,欢迎继续交流。

正在加载回复...