禁止BFS!
查看原帖
禁止BFS!
1373638
_second_coming_楼主2024/10/9 22:00

本题是经典的最短路,正解明显是BFS

但!是!

这题用DFS也能做(但会T掉)废话
TLE属于正常现象,但为啥WA了
这让很蒟的我搞不懂
代码哪里错了?

TLE的DFS:

#include<bits/stdc++.h>
using namespace std;
const int dx[]={0,1,0,-1,0},dy[]={0,0,1,0,1};
int n,a1,b1,a2,b2,f[1003][1003];
char str[1003][1003];
void dfs(int x,int y,int step){
	f[x][y]=step;
	for(int i=1;i<=4;i++){
		int _x=x+dx[i],_y=y+dy[i];
		if(_x>=1&&_x<=n&&_y>=1&&_y<=n&&str[_x][_y]!='1'&&(step+1<f[_x][_y]||f[_x][_y]==0))
		dfs(_x,_y,step+1);
	}
}
int main(){
	cin>>n;
	for(int i=1;i<=n;i++)
	scanf("%s",str[i]+1);
	cin>>a1>>a2>>b1>>b2;
	dfs(a1,a2,0);
        cout<<f[b1][b2];
	return 0;
}

不要和我说为什么TLE,我问的是为啥WA

2024/10/9 22:00
加载中...