名字吸引你进来,其实也没啥,就是求助!!!!
#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
using namespace std;
struct node{
int x,y,cnt;
};
int n,m,a[100][100],x2[5]={0,0,1,-1},y2[5]={1,-1,0,0};
char c;
queue<node> q;
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++){
cin>>c;
if(c=='#')a[i][j]=-1;
if(c=='.')a[i][j]=1;
if(c=='s'){
a[i][j]=0;
q.push({i,j,0});
}
else a[i][j]=2;
}
while(!q.empty()){
node h=q.front();q.pop();
for(int i=0;i<4;i++){
int x=h.x+x2[i],y=h.y+y2[i],cnt=h.cnt;
if(x<1||y<1||x>n||y>m)continue;
else if(a[x][y]==2&&cnt<=2){cout<<"YES"<<endl;return 0;}
else if(cnt>=2)continue;
q.push({x,y,cnt+1});
}
}
return 0;
}