百练2790:迷宫
来源:互联网 发布:网络信息发布平台 编辑:程序博客网 时间:2024/05/01 17:31
#include <cstdio>
#include <cstring>
#define N 105
#include <cstring>
#define N 105
using namespace std;
char map[N][N];
int vis[N][N];
int n;
int sx, sy, ex, ey;
int flag;//记录是否可达
int vis[N][N];
int n;
int sx, sy, ex, ey;
int flag;//记录是否可达
int dx[4] = { -1,0,0,1 };
int dy[4] = { 0,-1,1,0 };
int dy[4] = { 0,-1,1,0 };
void dfs(int xx, int yy)
{
if (xx == ex && yy == ey)//到达终点
{
flag = 1;
return;
}
for (int i = 0; i < 4; i++)
{
int tx = xx + dx[i], ty = yy + dy[i];
if (tx >= 0 && tx < n && ty >= 0 && ty < n && !vis[tx][ty] && map[tx][ty] != '#')
{
vis[tx][ty] = 1;
dfs(tx, ty);
//vis[tx][ty] = 0;
//问是否可达,dfs回溯时不需要记录数组归零。
//如果是求最短路径则需要归零。 回溯时是否归零看具体情况而定
}
}
}
{
if (xx == ex && yy == ey)//到达终点
{
flag = 1;
return;
}
for (int i = 0; i < 4; i++)
{
int tx = xx + dx[i], ty = yy + dy[i];
if (tx >= 0 && tx < n && ty >= 0 && ty < n && !vis[tx][ty] && map[tx][ty] != '#')
{
vis[tx][ty] = 1;
dfs(tx, ty);
//vis[tx][ty] = 0;
//问是否可达,dfs回溯时不需要记录数组归零。
//如果是求最短路径则需要归零。 回溯时是否归零看具体情况而定
}
}
}
int main()
{
int T;
scanf("%d", &T);
while (T--)
{
flag = 0;
memset(vis, 0, sizeof(vis));
scanf("%d", &n);
for (int i = 0; i < n; i++)
scanf("%s", &map[i]);
scanf("%d%d%d%d", &sx, &sy, &ex, &ey);
if (map[sx][sy] == '#' || map[ex][ey] == '#')
{
printf("NO\n");
continue;
}
vis[sx][sy] = 1;
dfs(sx, sy);
if (flag)
printf("YES\n");
else
printf("NO\n");
}
return 0;
}
{
int T;
scanf("%d", &T);
while (T--)
{
flag = 0;
memset(vis, 0, sizeof(vis));
scanf("%d", &n);
for (int i = 0; i < n; i++)
scanf("%s", &map[i]);
scanf("%d%d%d%d", &sx, &sy, &ex, &ey);
if (map[sx][sy] == '#' || map[ex][ey] == '#')
{
printf("NO\n");
continue;
}
vis[sx][sy] = 1;
dfs(sx, sy);
if (flag)
printf("YES\n");
else
printf("NO\n");
}
return 0;
}
0 0
- 百练2790:迷宫
- 百练2790:迷宫题解
- 百练 10 迷宫问题
- 2790:迷宫
- 榆木脑壳练算法之迷宫寻路问题
- 百练oj2706 麦森数
- 百练 2706 麦森数
- poj 百练 2818
- 百练 1450 Gridland
- 百练 1003 Hangover
- 百练 2940 求和
- 百练 1226 Substrings
- 百练 4013 中位数
- 百练---求和---2940
- 百练-约瑟夫问题
- 百练 3248 最大公约数
- 百练 3265 aaa
- 百练 3195 最大公约数
- elasticsearch 第二篇(配置篇)
- 图像数据预处理
- request的set-getParameter及getAttribute
- 基础练习 十六进制转八进制
- 学校要选择一个地方作为超市的位置,学校每个有K个部门,每个部门去超市的频率不一样,要求在可以设置的地点中选择一个最优的地点
- 百练2790:迷宫
- maven常用命令
- POJ 2632-Crashing Robots(模拟-robot移动)
- 郁闷的出纳员 treap模板
- A - 棋盘问题
- elasticsearch 第一篇(入门篇)
- 充值流量话费对接微信和支付宝支付实现
- 【从一开始】我的安卓学习之路(一)
- 对于数字位数的判断及回文数的判断+Prime Palindromes