文章

15

粉丝

142

获赞

26

访问

20.3k

头像
迷宫 题解:
P1563 天津大学/南开大学2019年机试题
发布于2023年5月11日 15:59
阅读数 1.6k

#include <cstring>
#include <iostream>
#include <algorithm>
#include <queue>

using namespace std;

typedef pair<int, int> PII; // 定义一个二元组类型,用于存储坐标

const int N = 110; // 表示地图大小的最大值

int n, m;
int s1, s2; // 起始点的坐标
int d[N][N]; // 存储起始点到每个点的距离
char g[N][N]; // 存储地图信息
int res = 10000,flag=0; // res表示到达终点的最短距离,flag表示是否已经到达过终点

// 宽度优先搜索函数
int bfs(){
    queue<PII> q; // 声明一个队列,用于存储每次搜索到的点
    memset(d,-1,sizeof d); // 首先将d数组初始化为-1,表示该点未被访问过
    d[s1][s2] = 0; // 将起始点的距离设为0
    int dx[4]={-1,0,1,0},dy[4]={0,1,0,-1}; // 定义一个数组表示每个点的四个方向
    q.push({s1,s2}); // 将起始点加入队列
    while(q.size()){
        auto t = q.front(); // 取出队头元素
        q.pop(); // 弹出队头元素
        for (int i=0;i<4;i++){ // 枚举该点四个方向
     &nbs...

登录查看完整内容


登录后发布评论

1 条评论
Gejiao
2024年3月23日 14:48

想问下这里可以用stack代替queque么?

赞(0)