用的dfs, 别说啥用bfs,本蒟不会!【掩脸哭】【掩脸哭】
粘代码:
#include<bits/stdc++.h>
using namespace std;
const int N = 50;
int a,b,c;
int sx, sy, sz;
int fx, fy, fz;
char room[N][N][N];
int ans = 0x7ffffff;
void dfs(int x, int y, int z, int time){
if(x==fx && y==fy && z==fz){
time = min(time,ans);
return;
}
if(room[x][y][z] == '.'){
room[x][y][z] = '#';
dfs(x-1, y, z, time+1);
dfs(x+1, y, z, time+1);
dfs(x, y-1, z, time+1);
dfs(x, y+1, z, time+1);
dfs(x, y, z-1, time+1);
dfs(x, y, z+1, time+1);
}
}
int main(){
memset(room, '#', sizeof(room));
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>>room[i][j][k];
if(room[i][j][k] == 'S') sx=i; sy=j; sz=k; room[i][j][k]='.';
if(room[i][j][k] == 'E') fx=i; fy=j; fz=k; room[i][j][k]='.';
}
}
}
dfs(sx, sy, sz, 0);
if(ans == 0x7ffffff){
printf("Trapped!");
return 0;
}
else printf("Escaped in %d minute(s).", ans);
return 0;
}
路过的大佬神犇们啊,快来帮帮本蒟吧,本蒟不会bfs,dfs咋写啊!