你谷一生巨响,此帖闪亮登场!!!
查看原帖
你谷一生巨响,此帖闪亮登场!!!
1343308
IAKIOI66666楼主2024/6/23 16:32

名字吸引你进来,其实也没啥,就是求助!!!!

#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}; //n:行 m:列 
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;
}
2024/6/23 16:32
加载中...