大佬求带,本蒟 1AC 4WA 用的dfs
查看原帖
大佬求带,本蒟 1AC 4WA 用的dfs
993941
xingchen666楼主2023/7/15 16:17

用的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咋写啊!

2023/7/15 16:17
加载中...