小白求助
查看原帖
小白求助
788825
wmq2012楼主2023/7/22 09:07
using namespace std;
int n,m;
char a[110][110];
bool vis[110][110];
bool flag=0;
int dx[]={0,0,1,-1};
int dy[]={1,-1,0,0};
void dfs(int x,int y){
	if(flag==1)return; 
	if(x==n&&y==m){ 
		flag=1;
		return;
	}
	for(int i=0;i<4;i++){
		int bx=x+dx[i];
		int by=y+dy[i];
		if(a[bx][by]=='#')continue; 
		if(vis[bx][by]==1)continue;
		if(bx>n||bx<=0||by>m||bx<=0)continue;
		
		vis[bx][by]=1; 
		dfs(bx,by);  
	}
	return;
}
int main(){ 
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			cin>>a[i][j]; 
		} 
	}
	vis[1][1]=1;
	dfs(1,1); 
	if(flag==1)cout<<"Yes"; 
	else cout<<"No"; 
	return 0;
}
2023/7/22 09:07
加载中...