10pts 求调
查看原帖
10pts 求调
766454
hiYE_ame楼主2023/7/19 23:09
#include<iostream>
using namespace std;
char Map0[100][100];
char Map1[101][101];
int m,n;
int SouX=1,SouY=1;
int DesX,DesY;
int c=0;
int PathX[10000],PathY[10000];
bool Visited[100][100];
int dx[4]={-1,0,1,0};
int dy[4]={0,1,0,-1};
void print(int);
void DFS(int x,int y,int step){
	PathX[step]=x;
	PathY[step]=y;
	Visited[x][y]=true;
	if(x==DesX && y==DesY){
		c++;
    }
    for(int i=0;i<4;i++){
		int nx=x+dx[i];
		int ny=y+dy[i];
		if(Map1[nx][ny]=='.' && !Visited[nx][ny]){
			DFS(nx,ny,step+1);
			Visited[nx][ny]=false;
		}
    }
}
void ChangeMap(){
	for(int i=1;i<=m;i++){
		for(int j=1;j<=n;j++){
			Map1[i][j]=Map0[i-1][j-1];
	    }
	}
}
int main(){
    cin>>m>>n;
    DesX=m;
    DesY=n;
    for(int i=0;i<m;i++){
        cin>>Map0[i];
    }
    
	ChangeMap();
	DFS(SouX,SouY,1);
	if(c==0){
	    cout<<"No";
	}
	else{
	    cout<<"Yes";
	}
	return 0;
}
2023/7/19 23:09
加载中...