禁止BFS!

P1746 离开中山路

Minecraft_BE @ 2024-10-09 22:00:07

本题是经典的最短路,正解明显是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


by LiuCarry @ 2024-10-09 22:07:08

额额额你dy错了额额额这这这建议先看一遍自己的代码


by LiuCarry @ 2024-10-09 22:08:11

@Minecraft_BE


by Fractured_Angel @ 2024-10-09 22:13:03

dy 数组。。。


by Minecraft_BE @ 2024-10-09 22:13:20

@LiuCarry o,thx


by Minecraft_BE @ 2024-10-09 22:14:24

此贴结


|