无输出求调
#include<iostream>
using namespace std;
int n,m,dx[4] = {0,1,0,-1},dy[4] = {1,0,-1,0},vis[510][510],flag = 0;
char map[510][510];
void dfs(int x,int y){
if(x == 'g' && y == 'g'){
flag = 1;
return;
}
for(int i = 0;i < 4;i++){
int tx = x + dx[i];
int ty = y + dy[i];
if(tx >= 0 && tx <= n-1 && ty >= 0 && ty >= m-1 && map[tx][ty] != '#' && vis[tx][ty] != 1){
vis[tx][ty] = 1;
dfs(tx,ty);
vis[tx][ty] = 0;
}
}
}
int main(){
cin >> n >> m;
for(int i = 1;i <= n;i++){
for(int j = 1;i <= m;j++){
cin >> map[i][j];
}
}
dfs(0,0);
if(flag == 1){
cout << "Yes";
}else{
cout << "No";
}
return 0;
}
回复必关