dfs模板
2024-05-18 16:49:07
发布于:上海
#include <iostream>
using namespace std;
int map[1001][1001] , n , m;
bool flag = 0;
bool vis[1001][1001];
int nx[4] = {0 , 1 , 0 , -1} , ny[4] = {1 , 0 , -1 , 0};
void dfs(int xx , int yy)
{
if (xx == n - 1 && yy == m - 1)
{
flag = 1;
return;
}
for(int i = 0 , x , y ; i < 4 ; i++)
{
x = xx + nx[i] , y = yy + ny[i];
if (x >= 0 && x < n && y >= 0 && y < m && map[x][y] == 0 && vis[x][y] == 0)
{
vis[x][y] = 1;
dfs(x , y);
}
}
}
int main()
{
cin >> n >> m;
for(int i = 0 ; i < n ; i++) for (int j = 0 ; j < m ; j ++) cin >> map[i][j];
vis[0][0] = 1;
dfs(0 , 0);
cout << (flag == 1 ? "YES" : "NO");
}
希望看的人给我留下一个赞
这里空空如也
有帮助,赞一个