why CE??
  • 板块学术版
  • 楼主封禁用户
  • 当前回复2
  • 已保存回复3
  • 发布时间2024/1/27 12:45
  • 上次更新2024/1/27 15:04:50
查看原帖
why CE??
1198296
封禁用户楼主2024/1/27 12:45
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N=505;
int n,m,sx,sy,tx,ty;
int dx[4]={0,0,1,-1};
int dy[4]={1,-1,0,0};
bool vis[N][N],flag;
struct Node{
	int x,y;
};
void bfs(){
	queue<int> q;
	q.push({sx,sy});
	while(!q.empty()){
		if(q.front()=={tx,ty}){
			flag=1;
			return ;
		}Node tmp=q.front();
		for(int i=0;i<4;++i){
			int xx=dx[i]+tmp.x;
			int yy=dy[i]+tmp.y;
			if(xx<1||xx>n||yy<1||yy>m||vis[xx][yy]) continue;
			q.push({xx,yy});
			vis[xx][yy]=1;
		}
	}return ;
}
signed main(){
	char c;
	cin>>n>>m;
	for(int i=1;i<=n;++i){
		for(int j=1;j<=m;++j){
			cin>>c;
			if(c=='s') sx=i,sy=j;
			if(c=='g') tx=i,ty=j;
			if(c=='#') vis[i][j]=1;
		}
	}bfs();
	if(flag) cout<<"Yes"<<endl;
	else cout<<"No"<<endl;
	return 0;
}
2024/1/27 12:45
加载中...