样例过butTLE0

B3625 迷宫寻路

stringdp100005 @ 2024-11-22 23:08:12

#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,m,ans;
char a[105][105];
bool b[105][105];
const int d[][2]={{1,0},{-1,0},{0,-1},{0,1}};
void dfs(int x,int y){
    if(x==n&&y==m){
        cout<<"Yes";
        exit(0);
    }
    for(int i=0;i<4;i++){
        int xx=x+d[i][0],yy=y+d[i][1];
        if(1<=xx&&xx<=n&&1<=yy&&yy<=m&&a[xx][yy]=='.'&&b[xx][yy]==0){
            b[xx][yy]=1;
            dfs(xx,yy);
            b[xx][yy]=0;
        }
    }
}
signed main(){
    cin>>n>>m;
    b[1][1]=1;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            cin>>a[i][j];
        }
    }
    dfs(1,1);
    cout<<"No";
    return 0;
}

by 123456gcy @ 2024-11-23 17:34:13

我也TLE50分


by fire_hua @ 2024-11-26 17:50:41

b[xx][yy]=1;;
dfs(xx,yy);
b[xx][yy]=0;

这个b[xx][yy]没必要再变成0了吧


|