代码求助
查看原帖
代码求助
1065753
__bjxx0201__楼主2024/8/31 11:05

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;
}
2024/8/31 11:05
加载中...