首页 > 其他分享 >bfs (9/26)

bfs (9/26)

时间:2023-09-26 18:55:08浏览次数:27  
标签:26 int bfs ++ second && include

bfs

可用于权值相同为1的时候求最短路问题

#include<iostream>
#include<algorithm>
#include<cstring>
#include<queue>
using namespace std;
const int N = 110;
typedef pair<int, int>PII;
queue<PII>q;
int a[N][N], f[N][N];
int n, m;
int bfs() {
    memset(f, -1, sizeof(f));
    q.push({ 0,0 }); f[0][0] = 0;
    while (q.size()) {
        auto k = q.front();//找一个保存一个,弹出一个
        q.pop();
        int xp[4] = { 1,0,-1,0 }; int yp[4] = { 0,1,0,-1 };//进行四个方向的查找
        for (int i = 0; i < 4; i++)
        {
            int x = k.first + xp[i]; int y = k.second + yp[i];//看下一个方向
            if (x >= 0 && x < n && y >= 0 && y < m && f[x][y] == -1&&a[x][y]==0) {//判断是否可以走通,一定不要忘记a[x][y]==0的判定
              f[x][y] = f[k.first][k.second] + 1;//前一个位置的总和基础上+1
                q.push({ x,y });//将下一个位置加入,多个方向有就加多个,然后分别进行操作,类似于递归
            }
        }
    }
    return f[n - 1][m - 1];//因为确保最右边角有0,且有通路,所以用这样
}
int main()
{
    cin >> n >> m;
    for (int i = 0; i < n; i++)
        for (int j = 0; j < m; j++)
            scanf("%d", &a[i][j]);
    cout << bfs() << endl;
    return 0;
}

 

标签:26,int,bfs,++,second,&&,include
From: https://www.cnblogs.com/daimazhishen/p/17730928.html

相关文章

  • 20230926
    今天在启动mongodb时一直报错ErrorparsingINIconfigfile:unrecognisedoption'dbpath'try'mongos--help'formoreinformation查询过很多的方法之后把mongo.config中的#journal=true#启用日志文件,默认启用注释掉之后就完成了启动  ......
  • 《流畅的Python》 读书笔记 230926(第一章后半部分)
    1.2如何使用特殊方法特殊方法的存在是为了被Python解释器调用的,你自己并不需要调用它们就是说通常你都应该用len(obj)而不是obj.__len()__,无论是系统预置的,还是你自己定义的类,交给Python,解释器会去调用你实现的__len()__然而如果是Python内置的类型,比如列表(list)、字符......
  • 2023.9.26——每日总结
    学习所花时间(包括上课):9h代码量(行):0行博客量(篇):1篇今天,上午上课,下午上课。我了解到的知识点:1.MongoDB连接;明日计划:1.上课;......
  • 流媒体播放器EasyPlayer.js无法播放H.265的情况是什么原因?该如何解决?
    H5无插件流媒体播放器EasyPlayer属于一款高效、精炼、稳定且免费的流媒体播放器,可支持多种流媒体协议播放,可支持H.264与H.265编码格式,性能稳定、播放流畅,能支持WebSocket-FLV、HTTP-FLV,HLS(m3u8)、WebRTC等格式的视频流,并且已实现网页端实时录像、在iOS上实现低延时直播等功能。有......
  • 【博文阅读】2023/09/26
      一、ICCV2023|Apple提出FastViT:快速卷积和Transformer混合架构论文名称:FastViT:AFastHybridVisionTransformerusingStructuralReparameterization论文地址:https://arxiv.org/pdf/2303.14189代码地址:https://github.com/apple/ml-fastvit博文地址:https://mp.w......
  • 《流畅的Python》 读书笔记 230926
    写在最前面的话缘由关于Python的资料市面上非常多,好的其实并不太多。个人认为,基础的,下面的都还算可以B站小甲鱼黑马的视频刘江的博客廖雪峰的Python课程进阶的更少,《流畅的Python》应该算一个。加上,自己也很久没有耐心的看完一本书了鉴于以上2点,2023-9-26开始在这里跟......
  • 9.26算法
    /** * Definition for singly-linked list. * struct ListNode { *     int val; *     ListNode *next; *     ListNode() : val(0), next(nullptr) {} *     ListNode(int x) : val(x), next(nullptr) {} *     ListN......
  • P5268 [SNOI2017] 一个简单的询问
    一个简单的询问显然这个询问并不简单如果做过莫比乌斯反演入门题problemb就会想到利用容斥将询问拆成四个那么我们现在的问题变成如何求[1,l][1,r]两个区间之间的答案,那么也是直接用莫队即可,只是维护的是两个区间的右端点,和原来的莫队有一些不一样,但是大体相同。#include<......
  • 267_Windows自带文件批量标号新姿势,1秒完成!
    这是一篇原发布于2020-01-2715:30:00得益小站的文章,备份在此处。前言今天的教程非常的短!非常短!保证看完就会,所以我不要你收藏,我要你学会!一个个的都只收藏,不点赞,你这样我很难做啊。——还是要收藏的,要收藏的,收藏也好,收藏也好...教程开始1.全选需要修改名称的文件2.按f2......
  • Tomcat--文件上传--文件包含--(CVE-2017-12615)&&(CVE-2020-1938)
    Tomcat--文件上传--文件包含--(CVE-2017-12615)&&(CVE-2020-1938)复现环境采用Vulfocus靶场环境进行复现,搭建操作和文章参考具体搭建教程参考vulfocus不能同步的解决方法/vulfocus同步失败。CVE-2017-12615文件上传漏洞简介当存在漏洞的Tomcat运行在Windows/Linux主机上,且......