10分DFS求调
查看原帖
10分DFS求调
1284088
meifan666楼主2024/7/10 20:09
#include<bits/stdc++.h>
using namespace std;
int n,m;
bool b;
char a[120][120];
bool flag[120][120];
void DFS(int x,int y){
	flag[x][y]=1;
//	printf("%d %d\n",x,y);
	if(x==n&&y==m){
		b=1;
		return;
	}
	if(x!=n&&a[x+1][y]!='#'&&!flag[x+1][y]){
		DFS(x+1,y);
	}
	if(x!=1&&a[x-1][y]!='#'&&!flag[x-1][y]){
		DFS(x-1,y);
	}
	if(y!=m&&a[x][y+1]!='#'&&!flag[x][y+1]){
		DFS(x,y+1);
	}
	if(y!=1&&a[x][y-1]!='#'&&!flag[x][y-1]){
		DFS(x,y-1);
	}
	flag[x][y]=0;
	return;
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			cin>>a[i][j];
		}
	}
	DFS(1,1);
	if(b)printf("Yes");
	else{
		printf("No");
	}
	return 0;
}
2024/7/10 20:09
加载中...