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了吧