Floyd-Warshall

应用场景

要求出每两点之间的最短路。或判断两点之间的连通性(两点之间是否有路径)。

板子

代码(必背!!!)

for(int k = 1; k <= n; k++)for(int i = 1; i <= n; i++)for(int j = 1; j <= n; j++)d[i][j] = min(d[i][j], d[i][k] + d[k][j]);// 是直接到下一个的边权小, 还是i -> k -> j小

原理(先背代码再理解)

你理解了要被代码, 不理解也要被代码, 背代码只是为了理解好, 所以先背代码再理解!

——老师口头禅

我们来理解一下(画图):

这是一个连通图吧, 我把顺序打乱了,我们来看一下代码会发生什么。

这里的黄线就是以前已经把3连上而1这时从4就可以打达3。

最后我们就可以得到:

转递闭包

        在有向图中,有时不必关心路径的长度,而只关心每两点间是否有通路,则可以用1和0分别表示“连通”和“不连通”。这样,除了预处理需做少许调整外,主算法中只需把“d[i][j] = min{d[i][j], d[i][k] + d[k][j]}”改成“d[i][j] = d[i][j] || (d[i][k] && d[k][j])”。这样的结果称为有向图的传递闭包(Transitive Closure)。 —— 网络

        也就是只关心是否连通而不是最短路径。

  _all(k, 1, N) _all(i, 1, N) _all(j, 1, N) {F[i][j] = F[i][j] || (F[i][k] && F[k][j]);}

 温馨提示

        但是注意Floyd算法,可以适应负权边,但是无法解决负权环,后者必须由BellmanFord算法来解决。

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

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

相关文章

C数据结构:排序

目录 冒泡排序 选择排序 堆排序 插入排序 希尔排序 快速排序 hoare版本 挖坑法 前后指针法 快速排序优化 三数取中法 小区间优化 快速排序非递归 栈版本 队列版本 归并排序 归并排序非递归 ​编辑 计数排序 各排序时间、空间、稳定汇总 冒泡排序 void Bub…

内存-VSS、RSS、PSS、USS

一、 VSS 虚拟耗用内存大小&#xff0c;是进程可以访问的所有虚拟内存的总量&#xff0c;包括进程独自占用的物理内存、和其他进程共享的内存、分配但未使用的内存。 RSS 驻留内存大小&#xff0c;是进程当前实际占用的物理内存大小&#xff0c;包括进程独自占用的物理内存、…

python安装及环境配置相关问题记录

1、python的安装 安装完成之后一切正常&#xff0c;利用命令提示符测试了一下全都正常&#xff0c;也不用把python的路径添加到系统变量里去。 pip的安装 pip组件是一个现代通用的Python包管理工具&#xff0c;其提供了对Python包的查找、下载、安装及卸载等功能。 大部分的…

【Java】图的初识

文章目录 【Java】图的初识图是什么图的基本组成部分图的类型图的表示方法图的常见操作 Java中图的表示方法邻接矩阵邻接表 常见操作图的遍历深度优先搜索&#xff08;DFS&#xff09;广度优先搜索&#xff08;BFS) 结论 【Java】图的初识 图是什么 图是一种数学概念&#xf…

Unity 使用TextMeshPro实现图文混排

最后实现出的效果是这样的 开始实现 准备两张图 选中图片右键->Create->TextMeshPro->Sprite Asset 然后文件夹内就会出现一个同名的这个文件 新建一个Text Inspector面板 点击最底下的Extra Settings 然后把刚刚创建的SpriteAsset拖过来 放到对应的地方 然后…

富瀚微FH8322 ISP图像调试—BLC校正

1、简单介绍 目录 1、简单介绍 2、调试方法 3、输出结果 富瀚微平台调试有一段时间了&#xff0c;一直没有总结&#xff0c;我们调试ISP的时候&#xff0c;首先一步时确定好sensor的黑电平值&#xff0c;黑电平如果不准&#xff0c;则会影响到后面的颜色及对比度相关模块。…

【CSS】background怎么设置多个背景图

在CSS中设置多个背景图片可以通过background-image属性来实现&#xff0c;不同的背景图像之间使用逗号隔开。以下是一个详细的步骤和示例来说明如何设置多个背景图&#xff1a; 步骤&#xff1a; 选择容器&#xff1a;首先&#xff0c;你需要选择一个HTML元素作为背景图片的容…

演绎推理三段论(大前提、小前提、结论)

演绎推理三段论&#xff08;大前提、小前提、结论&#xff09; 假设我们正在讨论一个关于植物生长的推理。 大前提&#xff1a;所有的植物都需要阳光才能进行光合作用&#xff0c;从而生长。 这个陈述是一个普遍性的原则&#xff0c;它描述了植物这一类生物体的一个共同特征…

快消品经销商需要注意哪些仓库管理细节,才能提效降本

仓库管理是快消品经销商必须重视的环节&#xff0c;只有仓库管理做好了&#xff0c;整体效率才能得到提升&#xff0c;成本才能降低&#xff0c;客户订单更快地交付&#xff0c;而在仓库管理中有很多细节需要经销商注意。 01仓库布局与设计&#xff1a;合理的仓库布局可以极大地…

Java17 --- SpringSecurity之OAuth2

一、OAuth2 1.1、使用github以授权码方式 1.1.1、注册应用程序 1.1.2、测试代码 pom依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-oauth2-client</artifactId></dependency> spring…

Oracle数据库之使用DDL语句管理表、约束(二十)

在Oracle数据库中&#xff0c;DDL&#xff08;Data Definition Language&#xff09;语句用于定义和管理数据库结构&#xff0c;如表、约束、索引等。以下是如何使用DDL语句来管理表和约束的一些示例。 1. 创建表 使用CREATE TABLE语句来创建表。 CREATE TABLE employees ( …

基于CPS-SPWM链式STATCOM系统在电压不平衡环境下控制策略的simulink建模与仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 5.完整工程文件 1.课题概述 基于CPS-SPWM链式STATCOM系统在电压不平衡环境下控制策略的simulink建模与仿真。利用电压外环PI调节器得到有功 电流指令值结合由负载侧电流检测 到 的无功 电流指令值 &#…

最新版点微同城源码34.7+全套插件+小程序前后端(含安装教程)

模板挺好看的 带全套插件 自己耐心点配置一下插件 可以H5可以小程序 源码下载&#xff1a;https://download.csdn.net/download/m0_66047725/89394996 更多资源下载&#xff1a;关注我。

JavaScript 深拷贝和浅拷贝的实现、使用场景和存在的问题

浅拷贝 实现 方式 1&#xff08;ES 5 语法&#xff09;&#xff1a; const params Object.assign({}, state.dataForm)方式 2&#xff08;ES 6 语法&#xff09;&#xff1a; const params { ...state.dataForm }使用场景 copy 入参和出参 深拷贝 方式 1&#xff08;手…

HTTP中get与post的区别?在传输数据类型上有什么区别?【面试】

HTTP中的GET和POST是两种最常见的请求方法&#xff0c;它们在数据传输和使用场景上有一些关键的区别&#xff1a; GET请求&#xff1a; 数据传输方式&#xff1a;GET请求将数据附加在URL之后&#xff0c;形成查询字符串&#xff08;namevalue的形式&#xff09;&#xff0c;数…

嘻嘻我是图床倒霉蛋

嘻嘻花了将近两个小时的时间配了一个小小的图床 手把手教你搭建阿里云图床(PicGoTypora阿里云OSS)&#xff0c;新手小白一看就会-阿里云开发者社区 (aliyun.com) 大体上按照这篇配置就好 七牛云因为测试域名30天到期,用自己的得备案,所以比较麻烦,建议直接上阿里云 我买了一…

股指期货功能

其金融期货的本质&#xff0c;决定了股指期货具有以下几方面特点&#xff1a; &#xff08;1&#xff09;交割方式为现金交割&#xff1b; &#xff08;2&#xff09;股指期货的持有成本较低&#xff1b; &#xff08;3&#xff09;股指期货的保证金率较低&#xff0c;杠杆性…

jrt从量变到质变

又是一个加班的周末&#xff0c;上周把台式机代码和数据库环境弄好了&#xff0c;这周进行大数据测试&#xff0c;直接把标本、标本医嘱、报告、报告结果、药敏结果等数据插入到1亿的规模&#xff0c;跑了一天一夜插入了5000多万个标本&#xff0c;后面接着补剩下的到一亿。 演…

jvm工具-jps、jstat、jmap、jstack

一、jps jps -v 【输出进程启动参数】 [rootVM-8-2-centos ~]# jps -v 12401 Jps -Dapplication.home/usr/local/jdk1.8.0_241 -Xms8m 16964 jar 其他参考 Java八股文必看&#xff0c;入门到深入理解jvm虚拟机之基础故障指令【jps&#xff0c;jstate...】-CSDN博客 二、j…

C++二进制文件的读与写

1. 二进制文件的读与写ofstream fout; ifstream fin; ——学习把结构体类型写到二进制文件中。 代码实现&#xff1a; /* _4.cpp 学习总结 视频学习C_Primer_Plus_17_6 1. 二进制文件的读与写 2. 写操作&#xff1a;fout类比cout操作&#xff0c;cout能操作的fout也适用 3. 易…