多源 BFS

news2024/11/18 17:32:09

例题一

解法(bfs)(多个源头的最短路问题)
算法思路:
对于求的最终结果,我们有两种⽅式:
第⼀种⽅式:从每⼀个 1 开始,然后通过层序遍历找到离它最近的 0
这⼀种⽅式,我们会以所有的 1 起点,来⼀次层序遍历,势必会遍历到很多重复的点。并且如果
矩阵中只有⼀个 0 的话,每⼀次层序遍历都要遍历很多层,时间复杂度较⾼。
换⼀种⽅式:从 0 开始层序遍历,并且记录遍历的层数。当第⼀次碰到 1 的时候,当前的层数
就是这个 1 0 的最短距离。
这⼀种⽅式,我们在遍历的时候标记⼀下处理过的 1 ,能够做到只⽤遍历整个矩阵⼀次,就能得
到最终结果。
但是,这⾥有⼀个问题, 0 是有很多个的,我们怎么才能保证遇到的 1 距离这⼀个 0 是最近的
呢?其实很简单,我们可以先把所有的 0 都放在队列中,把它们当成⼀个整体,每次把当前队列⾥⾯的所有元素向外扩展⼀次。

例题二

解法:
算法思路:
正难则反:
从边上的 1 开始搜索,把与边上 1 相连的联通区域全部标记⼀下;然后再遍历⼀遍矩阵,看看哪些位置的 1 没有被标记即可标记的时候,可以⽤「多源 bfs 」解决。

例题三

解法:
算法思路:
01矩阵的变型题,直接⽤多源 bfs 解决即可。

例题四

解法:
算法思路:
01矩阵的变型题,直接⽤多源 bfs 解决即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1856955.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring底层原理之bean的加载方式一 用XML方式声明bean 自定义bean及加载第三方bean 2024详解

目录 用XML方式声明bean 首先我们创建一个空的java工程 我们要导入一个spring的依赖 注意在maven工程里瞅一眼 我们创建一个业务层接口 还有四个实现类 我们最初的spingboot生命bean的方式是通过xml声明 我们在resources文件夹下创建一个配置文件 我们书写代码 首先初…

糖尿病早中期症状常常被人们忽视,从而错过最佳的干预时机。

我们都知道糖尿病有“三多一少”(多饮、多尿、多食、体重减少)的典型症状。然而,现实中糖尿病的表现并非总是如此清晰。更麻烦的是,糖尿病具有很强的隐匿性,若不做血糖检查,多数人难以察觉自己已患病。 今天…

什么无线麦克风音质最好,领夹无线麦克风最新推荐!

当今社会,直播销售的热潮与个人视频日志的流行趋势正重塑着内容创作领域的面貌,同时这也极大地激发了麦克风市场的活力。特别是无线领夹麦克风,它以轻便的设计理念和高效的录音性能,俘获了众多视频创作者的心。无论是在直播带货中…

算法常见问题

1.c虚函数 虚函数是用来实现多态(polymorphism) 的一种机制。通过使用虚函数,可以在子类中重写父类中定义的方法,并且在运行时动态地确定要调用哪个方法。 在类定义中将一个成员函数声明为虚函数,需要使用 virtual 关键字进行修饰 。 通过指向…

大语言模型(LLMs)能够进行推理和规划吗?

大语言模型(LLMs),基本上是经过强化训练的 n-gram 模型,它们在网络规模的语言语料库(实际上,可以说是我们文明的知识库)上进行了训练,展现出了一种超乎预期的语言行为,引…

基于Springboot + vue 的抗疫物质管理系统的设计与实现

目录 📚 前言 📑摘要 📑系统流程 📚 系统架构设计 📚 数据库设计 📚 系统功能的具体实现 💬 系统登录注册 系统登录 登录界面 用户添加 💬 抗疫列表展示模块 区域信息管理 …

水泥超低排平台级别

在当今社会,环保已成为各行各业发展的重要指标。水泥行业作为国民经济的基础产业,其环保水平的高低直接关系到整个行业的可持续发展。近年来,朗观视觉水泥超低排平台作为水泥行业环保领域的新宠,受到了广泛关注。那么,…

STL —— 用一棵红黑树同时封装出map和set

文章目录 红黑树源代码RBTree.h 红黑树模板参数的控制红黑树结点当中存储的数据模板参数中仿函数的增加普通迭代器和const迭代器的实现myMap.hmySet.hRBTree.h 红黑树源代码 使用KV模型的红黑树进行封装,同时模拟实现出CSTL库当中的map和set RBTree.h //枚举定义…

网络安全:Web 安全 面试题.(XSS)

网络安全:Web 安全 面试题.(XSS) 网络安全面试是指在招聘过程中,面试官会针对应聘者的网络安全相关知识和技能进行评估和考察。这种面试通常包括以下几个方面: (1)基础知识:包括网络基础知识、操作系统知…

axios的基本使用和vue脚手架自带的跨域问题解决

axios的基本使用和vue脚手架自带的跨域问题解决 1. axios 1.1 导入axios npm i axios1.2 创建serve1.js serve1.js const express require(express) const app express()app.use((request,response,next)>{console.log(有人请求服务器1了);console.log(请求来自于,re…

【BES2500x系列 -- RTX5操作系统】深入探索CMSIS-RTOS RTX -- 任务管理篇 -- 线程管理 --(二)

💌 所属专栏:【BES2500x系列】 😀 作  者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! &#x1f49…

SSM图书馆管理系统-计算机毕业设计源码07925

摘 要 “鸟欲高飞先振翅,人求上进先读书”,可见读书对我们的重要性,在这个高速发展的社会,人们也越来越意识到读书的重要性,人们需要汲取各个领域的知识,不断的拓展自己的知识水平,图书馆作为一…

华为---OSPF的DR与BDR(六)

9.6 OSPF的DR与BDR 9.6.1 原理概述 在OSPF的广播类型网络和NBMA类型网络中,如果网络中有n台路由器,若任意两台路由器之间都要建立邻接关系,则需要建立n(n-1)/2个邻接关系,即当路由器很多时,则需要建立和维护的邻接关…

MTK7628+MT7612 加PA定频数据

1、硬件型号TR726A5G121-DPA PC9.02.0017。如下所示: 2、WIFI5.8 AC模式 42(5120MHz)信道,80带宽 3、WIFI5.8 AC模式 38(5190MHz)信道,40带宽 4、WIFI5.8 AC模式 36(5180 MHz&…

【Linux】进程间通信上 (1.5万字详解)

目录 一.进程间通信介绍 1.1进程间通信的目的 1.2初步认识进程间通信 1.3进程间通信的种类 二.匿名管道 2.1何为管道 2.1实现原理 2.3进一步探寻匿名管道 2.4编码实现匿名管道通信 2.5管道读写特点 2.6基于管道的进程池设计 三.命名管道 3.1实现原理 3.2代码实现 四.…

asp.net core反向代理

新建项目 新建空白的asp.net core web项目 安装Yarp.ReverseProxy包版本为2.2.0-preview.1.24266.1 编写代码 namespace YarpStu01;public class Program {public static void Main(string[] args){var builder WebApplication.CreateBuilder(args);builder.Services.AddRev…

再添国家级认证!亚信安全获国家信息安全服务(数据安全类)一级资质

近日,亚信安全荣获由中国信息安全测评中心颁发的《国家信息安全测评信息安全服务资质证书—数据安全类一级》资质。凭借在数据安全领域的专业地位和技术水平,亚信安全成为为数不多的获得国家信息安全服务资质数据安全类一级的网络安全企业! 中…

如何用家政服务小程序源码系统 快速搭建家政自己接单的软件?

随着移动互联网的快速发展,线上预约服务已成为家政行业的新趋势。然而,许多家政企业面临着信息不透明、服务质量参差不齐、管理效率低下等问题。家政服务小程序系统,可以帮助商家快速搭建自己的接单软件,提升服务效率,…

网安大咖说·镜鉴(下)| 把握安全新脉搏:企业CSO的领航之道

网安大咖说镜鉴栏目通过对网安大咖说嘉宾访谈内容的深度提炼,撷取群英论道之精髓,汇聚众智谋策之高远,为从业者提供宝贵的经验和启迪。集思广益、博采众长,意在以镜为鉴,观网安之百态,立防范之策略&#xf…

AI界又放大招?长文本新霸主“橙篇”来了

哈喽,大家好,木易巷来啦! 在自媒体的江湖里,每个创作者都是一位独行侠,手握键盘,心怀天下。而我,也不例外,有点空闲时间就去寻找那个能让我笑傲江湖的AI神兵,让我可以摆…