社区讨论
离谱!DFS 90pts,1*WA
B3625迷宫寻路参与者 2已保存回复 4
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 4 条
- 当前快照
- 1 份
- 快照标识符
- @m6p4byvz
- 此快照首次捕获于
- 2025/02/03 22:00 去年
- 此快照最后确认于
- 2025/11/04 10:02 4 个月前
CPP
#include<bits/stdc++.h>
using namespace std;
char a[105][105];
bool c;
int n, m;
bool vis[105][105] = {false};
int dx[4] = {1,-1,0,0};
int dy[4] = {0,0,-1,1};
void dfs(int x, int y) {
if (x == n && y == m) {
c = true;
return;
}
else {
for (int i = 0; i < 4; i++) {
int xx = x + dx[i];
int yy = y + dy[i];
if (a[xx][yy] != '#' && xx >= 0 && xx <= n && yy >= 0 && yy <= m && !vis[xx][yy]) {
vis[xx][yy] = 1;
dfs(xx,yy);
}
}
}
}
int main() {
cin >> n >> m;
for (int i = 1; i <= n; i++)
for (int j = 1; j <= m; j++)
cin >> a[i][j];
vis[1][1] = 1;
dfs(1,1);
if (c == true) cout << "Yes" << endl;
else cout << "No" << endl;
return 0;
}
回复
共 4 条回复,欢迎继续交流。
正在加载回复...