40分求助,玄关
查看原帖
40分求助,玄关
1125069
Silver_winter楼主2024/8/13 15:37
#include<bits/stdc++.h>
using namespace std;
int n,m,a[105][105];
bool b[105][105];
void dfs(int x,int y){
	b[x][y]=1;
	if(x==n&&y==m){
		cout<<"Yes";
		abort();
	}
	if(a[x+1][y]==2 && !b[x+1][y]&&x<=n&&y<=m)dfs(x+1,y);
	if(a[x][y+1]==2 && !b[x][y+1]&&x<=n&&y<=m)dfs(x,y+1);
	if(a[x-1][y]==2 && !b[x-1][y]&&x<=n&&y<=m)dfs(x-1,y);
	if(a[x][y-1]==2 && !b[x][y-1]&&x<=n&&y<=m)dfs(x,y-1);
	
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			char w;
			cin>>w;
			if(w=='#')a[i][j]=1;
			else a[i][j]=2;
		}
	}
	b[1][1]=1;
	dfs(1,1);
	cout<<"No";
	return 0;
}

一片RE

2024/8/13 15:37
加载中...