rt,疑似 dfs 有误,测试数据输入时,一直卡着,没有输出,应该是 RE。
代码如下:
#include <bits/stdc++.h>
using namespace std;
int n,m;
char a[1001][1001];
bool flag=false;
const int dx[5] = {114514,0,-1,0,1},dy[5] = {114514,1,0,-1,0};
void dfs (int x,int y) {
if (x>n || y>m || x<1 || y<1 || a[x][y]=='#') return ;
if (x==n && y==m) {
flag=true;
return ;
}
for (int i=1;i<=4;i++) {
if (a[x+dx[i]][y+dy[i]]=='#' || x+dx[i]>n || y+dy[i]>m || x+dx[i]<1 || y+dy[i]<1) continue;
dfs (x+dx[i],y+dy[i]);
}
}
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 (!flag) cout<<"No";
else cout<<"Yes";
return 0;
}