文章

18

粉丝

183

获赞

57

访问

101.8k

头像
1563 迷宫 南开大学2019年机试题 AC
推荐阅读
P1563 天津大学/南开大学2019年机试题
发布于2022年7月17日 15:55
阅读数 5.5k

此题为一个经典的简单模板BFS

确定思路过程如下:

  • 迷宫问题--->使用搜索算法
  • 存在多个终点时,要去输出最短的一条路--->使用BFS

相比于最纯粹的BFS,这题考察的点在于:

  • 如何使用一个dis[x][y]二维数组去记录走到点(x,y)的步数

代码如下:

// 迷宫问题,最短到达终点路径,宽度优先搜索
#include <bits/stdc++.h>

using namespace std;

char G[105][105];                           //迷宫图
int h, w;                                   //高宽
int startx, starty;                         //起点
int visit[105][105];                        //标记是否被访问
int dir[4][2] = {0, 1, 0, -1, 1, 0, -1, 0}; //上下左右方向
int dis[105][105];                          //记录距离

struct node
{
    int x, y;
};

bool jud(int x, int y)
{
    //已被访问
    if (visit[x][y] == 1)
        return false;
    //越界
    if (x < 0 || x >= h)
        return false;
    if (y < 0 || y >= w)
        return false;
    //墙
    if (G[x][y] == '#')
        return false;
    //可访问
    return true;
}

void printG()
{
    for (int i = 0; i < h; i++)
    {
        for (int j = 0; j < w...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发