50pts 995!
查看原帖
50pts 995!
960665
E_RONALDO楼主2024/12/12 20:13
#include<bits/stdc++.h>
using namespace std;
int dx[]={0,1,0,-1};
int dy[]={1,0,-1,0};
char mp[105][105];
bool vis[105][105];
int n,m;
bool f=0;
int cx=0,cy=0;
bool init(int xx,int yy){
	if(xx<1||xx>n||yy<1||yy>n){
		return 0;
	} 
	if(mp[xx][yy]=='#'||vis[xx][yy]==1){
		return 0;
	} 
	return 1;
}
void dfs(int x,int y){
	if(x==n&&y==m){
		cout<<"Yes";
		f=1;
		return;
	}
	
	for(int i=0;i<4;i++){
		cx=x+dx[i];
		cy=y+dy[i];
		if(init(cx,cy)){
			vis[cx][cy]=1;
			dfs(cx,cy);
		}
		
	}
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			cin>>mp[i][j];
		}
	}
	dfs(1,1);
	if(f==0){
		cout<<"No";
	}
	
	return 0;
}
2024/12/12 20:13
加载中...