@[yangkaixiang](/user/1349163) 送你个模板
```
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,m;
cin>>n>>m;
int sx=0,sy=0,tx=0,ty=0;
int vis[510][510]={0};
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
char a;
cin>>a;
if(a=='#')vis[i][j]=1;
if(a=='T')tx=i,ty=j;
if(a=='S')sx=i,sy=j;
}
}
int d[510][510]={0};
queue<int>q1,q2;
q1.push(sx);
vis[sx][sy]=1;
q2.push(sy);
int dl[4][2]={0,1,1,0,0,-1,-1,0};
while(!q1.empty()){
int x=q1.front();
q1.pop();
int y=q2.front();
q2.pop();
if(x==tx&&y==ty){
cout<<d[x][y];
return 0;
}
for(int i=0;i<4;i++){
int xx=x+dl[i][0];
int yy=y+dl[i][1];
if(xx>=0&&xx<n&&yy>=0&&yy<m){
if(!vis[xx][yy]){
q1.push(xx);
q2.push(yy);
d[xx][yy]=d[x][y]+1;
vis[xx][yy]=1;
}
}
}
}
cout<<-1;
return 0;
}
```
by 1217Eirc @ 2024-09-20 13:06:53
@[1217Eirc](/user/687268) 谢谢
by ykx1 @ 2024-09-20 13:07:37