搜索与图论(2)

搜索与图论(2),第1张

搜索与图论(2)

一、

 

 

#include
using namespace std;
const int N=110;
int n,m;
int g[N][N];//存的是地图
int d[N][N];//存的是每个点到起点的距离
typedef pair PII;//pair是C++中一种模板类型。
//每个pair对象可以存储两个值,这两个值可以是不同的数据类型。
//存储的值可以是基本数据类型也可以是自定义数据类型。
PII q[N*N],pre[N][N],t;//前者是自己实现队列,队列中每一个元素都是坐标pair,后者是多记录路径

int bfs()
{
    int hh=0,tt=0;
    q[0]= {0,0}; //刚开始插入队头元素,也因为这样hh初始化为0
    memset(d,-1,sizeof(d));//将每个点到起点的距离都置为-1,表示这个点没有探索过
    d[0][0]=0;
    int dx[4]= {-1,0,1,0},dy[4]= {0,1,0,-1};
    while(hh<=tt) //队列不空时
    {
        t=q[hh++];//取出队头元素,尝试往上下左右四个方向扩展
        for(int i=0; i<4; i++)
        {
            // //对于当前节点t,依次探索四个方向是否可行
            int x=t.first+dx[i],y=t.second+dy[i];
            if(x>=0&&x=0&&y>n>>m;
    for(int i=0; i>g[i][j];
    }
    cout< 

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5698967.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-17
下一篇2022-12-17

发表评论

登录后才能评论

评论列表(0条)

    保存