代码随想录冲冲冲 Day58 图论Part9

47. 参加科学大会(第六期模拟笔试)

根据昨天的dijkstra进行堆优化

使用的原因是点多但边少 所以直接对于边进行操作

1.对于priority_queue来说

这是最小堆, 小于的话就是最大堆

之后由于是根据边来说的 所以新建一个Edge并且初始化一下

之后由于使用了priority_queue来构造最小堆,在加上传入queue中的都是一个点以及点到原点的距离,根据自定义的判断公式,已经默认排好了最小也就是离得最近的。所以每次只要top后 pop掉就可以了

下面的判断是为了避免1 -> 2 -> 3 ->1这种的成环情况

之后就是去更新值 在更新完之后会把还没有访问到的 cur的邻边放入queue中

卡码网KamaCoder

94. 城市间货物运输 I

bellman_ford算法 使用场景是图中有负权重时可以使用

1.什么是松弛

每条边有起点、终点和边的权值。例如一条边,节点A 到 节点B 权值为value,如图:

minDist[B] 表示 到达B节点 最小权值,minDist[B] 有哪些状态可以推出来?

状态一: minDist[A] + value 可以推出 minDist[B] 状态二: minDist[B]本身就有权值 (可能是其他边链接的节点B 例如节点C,以至于 minDist[B]记录了其他边到minDist[B]的权值)

minDist[B] 应为如何取舍。

本题我们要求最小权值,那么 这两个状态我们就取最小的

if (minDist[B] > minDist[A] + value) minDist[B] = minDist[A] + value

也就是说,如果 通过 A 到 B 这条边可以获得更短的到达B节点的路径,即如果 minDist[B] > minDist[A] + value,那么我们就更新 minDist[B] = minDist[A] + value ,这个过程就叫做 “松弛” 。

对所有边松弛一次,相当于计算 起点到达 与起点一条边相连的节点 的最短距离

如图有n个节点 就松弛n-1次

然后基于

if (minDist[from] != INT_MAX && minDist[to] > minDist[from] + price) { 
                minDist[to] = minDist[from] + price; 

这个核心公式继续更新

另外一点是如果松弛次数大于了n-1就不会继续更新了

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数字孪生赋能BMS:开启电池管理新纪元

这几天,全世界的媒体几乎都在报道黎巴嫩爆炸案。原本此类地缘冲突的影响力是较为有限的,但是这次的事件不太一样:这次爆炸的,是几千个传呼机。 这一事件迅速引发了全球范围内对于电子设备安全性的广泛关注:随着社会日…

[EBPF] 实时捕获DM数据库是否存在SQL阻塞

1. 介绍 eBPF(extened Berkeley Packet Filter)是一种内核技术,它允许开发人员在不修改内核代码的情况下运行特定的功能。eBPF 的概念源自于 Berkeley Packet Filter(BPF),后者是由贝尔实验室开发的一种网…

如何选择数据库架构

选择合适的数据库架构是一个复杂的过程,它取决于多种因素,包括应用程序的需求、数据量的大小、并发访问量、数据一致性要求、预算以及技术团队的熟悉程度等。以下是一些关键的步骤和考虑因素,帮助你选择合适的数据库架构: 1. 分析…

JavaScript对象方法

对象方法 已经讨论过hasOwnProperty(),propertyIsEnumerable()和isPrototypeOf()三个方法。 以及静态函数,Object.create(),Object.getPrototypeOf()等。 toString()方法 无参数,返回一个表示调用这个方法的对象值的字符串。默认返回信息很少&#x…

基因组学的未来:DAP-seq技术如何塑造

在生物科学的探索之旅中,我们一直在寻找更高效、更精确的方法来揭示基因的秘密。今天,我们自豪地介绍一种革命性的技术——DAP-Seq,它正在改变我们对基因表达调控的理解。 什么是DAP-Seq? DAP-Seq,即DNA亲和纯化测序技…

DataWhale x南瓜书学习笔记 task04笔记

线性判别分析(LDA) 前提假设:各类样本的协方差矩阵相同且满秩LDA的思想:1.设法让训练样例集投影到一条直线上,2.同类样例的投影点尽可能接近,异类样例的投影点尽可能远离,3.在对新样本进行分类时…

C++语法—引用

引用变量 概念 简单理解就是对一个已存在的变量起别名,与那个已存在的变量共用一块内存空间。 用法:已存在变量的类型 & 引用变量名 (引用实体)已存在变量 int main() {int a 1;int& b a;return 0; }在上面这个示例…

Lab1:虚拟机kolla安装部署openstack,并创建实例

实验内容: 创建并配置虚拟机安装OpenStack创建镜像创建实例类型选择网络配置创建实例 1、选择一个适合你的系统的虚拟机管理软件: VirtualBox (推荐) VMWare 其他 2、下载 .iso 镜像文件 openstack S 版本 iso 链接&#xff1…

计算机视觉实战项目4(图像分类+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别+无人机检测+A*路径规划+单目测距与测速+行人车辆计数等)

往期热门项目回顾: 计算机视觉项目大集合 改进的yolo目标检测-测距测速 路径规划算法 图像去雨去雾目标检测测距项目 交通标志识别项目 yolo系列-重磅yolov9界面-最新的yolo 姿态识别-3d姿态识别 深度学习小白学习路线 AI健身教练-引体向上-俯卧撑计数…

网站设计中安全方面都需要有哪些考虑

网站设计中的安全性是一个多方面的问题,需要从多个角度进行考虑和实施。以下是一些关键的安全考虑因素: 数据加密: 使用SSL(安全套接字层)证书来建立加密连接,确保数据在传输过程中不被截获。定期更新SSL证…

保障电气安全的电气火灾监控系统主要组成有哪些?

电气火灾是什么? 电气火灾一般是指由于电气线路、用电设备、器具以及供配电设备出现故障性释放的热能:如高温、电弧、电火花以及非故障性释放的能量;如电热器具的炽热表面,在具备燃烧条件下引燃本体或其他可燃物而造成的火灾&…

动态规划入门题目->使用最小费用爬楼梯

1.题目: 2.解析: 做题模式: 步骤一:找状态转移方程 步骤二:初始化 步三:填表 步骤四:返回-> dp[n] dp[i]表示到达 i 位置最小花费 逻辑:要爬到楼顶先找到 i 位置 , 要…

如何在谷歌浏览器上玩大型多人在线游戏

在如今的数字时代,谷歌浏览器已经成为了许多人上网冲浪的首选工具。除了浏览网页、观看视频之外,你还可以在谷歌浏览器上畅玩各种大型多人在线游戏。本文将为你详细介绍如何在谷歌浏览器上玩大型多人在线游戏的步骤。 (本文由https://chrome…

PTH原理 补丁+工具

顺着《域渗透攻防指南》4.9的总结记录下。 0x00 PTH简单说明 PTH在内网渗透中用于横向移动。由于NTLM && Kerberos都是采用用户密码的NTLM Hash,所以我们不需要非得拿用户明文口令,拿到hash一样可以。 拿到hash后,可以撞hash&…

【深度学习】03-神经网络01-4 神经网络的pytorch搭建和参数计算

# 计算模型参数,查看模型结构,我们要查看有多少参数,需要先安装包 pip install torchsummary import torch import torch.nn as nn from torchsummary import summary # 导入 summary 函数,用于计算模型参数和查看模型结构# 创建神经网络模型类 class Mo…

nginx+php+postgresql搭建漏洞靶场

经过我多番查找,最终得出一个结论,dvwa暂时不支持 postgresql 本文给大家提供一个思路,千万不要轻易模仿 更新系统包列表 首先,打开终端并更新你的系统包列表: sudo apt updatesudo apt upgrade -y安装必要的软件包 安装Nginx、PHP、PostgreSQL以及一些必要的PHP扩展:…

基于BeagleBone Black的网页LED控制功能(flask+gpiod)

目录 项目介绍硬件介绍项目设计开发环境功能实现控制LED外设构建Webserver 功能展示项目总结 👉 【Funpack3-5】基于BeagleBone Black的网页LED控制功能 👉 Github: EmbeddedCamerata/BBB_led_flask_web_control 项目介绍 基于 BeagleBoard Black 开发板…

搜索引擎onesearch3实现解释和升级到Elasticsearch v8系列(四)-搜索

搜索 搜索内容比较多,onesearch分成两部分,第一部分,Query构建,其中包括搜索词设置,设置返回字段,filter,高亮;第二部分分页和排序。第一部分是映射引擎负责,映射通用表…

HAL+M4学习记录_2

一、Boot配置 内存地址是固定的,代码从0x0000 0000开始,而数据从0x2000 0000开始,F4支持三种不同的boot模式 复位芯片时,在SYSCLK的第4个上升沿BOOT引脚值被锁存,STM32F407通过此时BOOT[1:0]引脚值选择Boot模式 BOOT1…

深度学习(入门)03:监督学习

1、监督学习简介 监督学习(Supervised Learning)是一种重要的机器学习方法,它的目标是通过“已知输入特征”来预测对应的标签。在监督学习中,每一个“特征-标签”对被称为样本(example),这些样…