题解
2025-07-23 15:31:39
发布于:浙江
0阅读
0回复
0点赞
#include<bits/stdc++.h>
#define N 1010
using namespace std;
int n,m;
int dir[4][2]={{0,1},{1,0},{0,-1},{-1,0}};
char Map[N][N];
int visited[N][N];
bool inmap(int X,int Y){
char obj=Map[X][Y];
return X>=1 and X<=n and Y>=1 and Y<=m and (obj=='.' || obj=='S' || obj=='T') and visited[X][Y]==0;
}
void dfs(int x,int y){
if (x==n and y==m) return;
for (int i=0;i<4;i++){
int X=x+dir[i][0];
int Y=y+dir[i][1];
if (inmap(X,Y)){
visited[X][Y]=1;
dfs(X,Y);
}
}
}
int main(){
cin>>n>>m;
for (int i=1;i<=n;i++){
for (int j=1;j<=m;j++){
cin>>Map[i][j];
}
}
visited[1][1]=1;
dfs(1,1);
cout<<(visited[n][m]==1?"YES":"NO");
return 0;
}
这里空空如也
有帮助,赞一个