洛谷模板.Floyd的深度理解(python)

 先上代码:

n, m = map(int, input().split())
edge = [ [float('inf')]*n for _ in range(n)]
for i in range(m):
    u, v, w = map(int, input().split())
    edge[u-1][v-1] = min(edge[u-1][v-1], w)
    edge[v-1][u-1] = min(edge[v-1][u-1], w)
for i in range(n):
    edge[i][i] = 0
for k in range(n):
    for i in range(n):
        for j in range(n):
            edge[i][j] = min(edge[i][j], edge[i][k] + edge[k][j])
for i in range(n):
    for j in range(n):
        print(edge[i][j], end=' ')
    print()

floyd算法知道长什么样,就是三层for循环呗,但是理解起来不是很简单。

为什么要进行三层循环,因为三层循环之后,从节点i到节点j的所有路径都遍历了一遍,找到最小值。

我们节点i到节点j的最短路径(现在节点i和节点j是某两个节点,已经固定)考虑算法首先初始化,

如果i和j直接存在路径,那么edge[i][j] = w。或者不存在路径,edge[i][j]=inf。

现在开始第一层循环,k = 1:

        不考虑i==k和j==k的情况(毕竟如果相等,那么edge[i][j]任然等于w或者inf),现在i!=k and j!=k,那么edge[i][j] = min(edge[i][j], edge[i][k] + edge[k][j]),取值为节点i到j的情况,和节点i到k到j的情况,这里我就简写,i-j 和 i-1-j

k = 2:

        edge[i][j] = min(edge[i][j], edge[i][2] + edge[2][j]),这里面存在 i-j,和i-2-j的情况,只有这两个吗???第一重循环中,已经计算了任意两个节点以节点1为桥的情况,那么现在全部情况应该是:i-j, i-1-j, i-2-j, i-1-2-j, i-2-1-j 这五种情况。

k = ....

k取完1-n之后,edge[i][j] 表示从节点i到节点j的所有可能存在的路径的最小值。

所以Floyd能奏效。

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

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

相关文章

小程序(四)

十四、分包加载 (一)普通分包与主包 随着项目越来越大,为了用户更好的体验,小程序引用了分包技术,分包技术将tabBar页面及一些全局使用的静态资源,放到主包中,开发者可以根据需要添加分包&…

三无跨考,上岸热门211?

这个系列会邀请上岸学长学姐进行经验分享~ 今天分享经验的同学也是梦马班的学员,一战高分上岸福州大学! 经验分享 一战零基础跨考福州大学866,初试395,信号141,最后本部录取排名前十。各位要报考福州大学的学弟学妹…

Win7远程桌面连接不上:原因及专业解决方案

Win7远程桌面连接作为一种方便的工具,使得用户可以从一台计算机远程访问和操作另一台计算机。然而,有时用户可能会遇到Win7远程桌面连接不上的情况,这可能是由于多种原因导致的。 一、原因分析 1. 网络设置问题:确保计算机与远程…

SpringBoot之远程调用的三大方式

为什么要使用远程调用? SpringBoot不仅继承了Spring框架原有的优秀特性,而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程。在Spring-Boot项目开发中,存在着本模块的代码需要访问外面模块接口,或外部url链接的需求…

国网645协议报文解析软件

本文分享一款支持国网DL645-2007规约的报文解析软件, 链接: https://pan.baidu.com/s/1ngbBG-yL8ucRWLDflqzEnQ 提取码: y1de 主界面如下图所示: 本解析软件同时内嵌规约文档,支持一键打开文档,功能如下: 同时支持模…

SAP CS07复制BOM简介

在比较大型的集团公司中会应用到这样一个场景,所有的BOM都是由总部研发统一管控,然后在下发到下属的工厂进行生产,当发生变更的时候BOM也是会随之进行变更。 同样的在相同的两家工厂中,使用的是一套的设计方案,并且当物料发起变更的时候BOM也要随之进行变更处理。 在对BO…

【软件的安装与基本设置】AD21软件的PCB规则设置

在绘制PCB之前,要进行规则的创建,因为在绘制PCB的过程中,难免会出现很多错误,所以需要先对绘制PCB创建规则,即所有的打孔,走线,铺铜都要基于电气性能规则去设计,等到后期&#xff0c…

win10共享文件夹到ubuntu22

win10共享文件夹 新建用户 新建用户、设置密码。避免共享给EveryOne,导致隐私问题。 点击左下角的开始菜单,选择“设置”(WinI)打开设置窗口。在设置窗口中,搜索或直接点击“账户”进入账户设置。在账户设置中&…

Android Compose 五:常用组件 TextField

1、基本使用 1.1 随便用用 TextField(value "吃吃吃", onValueChange {})结果 点击输入框可以弹出软键盘光标显示正常 到文字最后位置文字 “吃吃吃” 无法删除输入文本无法变更 1.2 使用 val text remember {mutableStateOf("这一个输入框") } Te…

微信小程序如何变现

微信小程序有多种变现方式,以下是一些主要的方法: 广告变现:在小程序中嵌入广告,通过点击、曝光等手段获取收益。这是一种非常普遍的变现方式,尤其适合流量较大、用户活跃度较高的小程序。 电商变现:通过…

Vitis Platform Methodology

Vitis Platform Methodology

2024年开抖店都需要做哪些准备?这些条件缺一不可

大家好,我是电商花花。 作为目前国内最受欢迎的短视频电商平台,抖音将成为众多创业者的首选平台。 在往年我们都知道抖音小店市场很多,红利很大,利润大,不少人都通过抖音小店实现了脱贫,也有部分上班族获…

品鉴中的礼仪习俗:如何遵循正确的红酒品鉴礼仪

在品鉴云仓酒庄雷盛红酒时,遵循正确的礼仪习俗不仅能展现个人的修养,还能更好地领略葡萄酒的风味。下面我们将探讨红酒品鉴中的礼仪习俗。 首先,当我们拿起酒杯时,应该注意不要晃动酒杯,以免扰动其中的酒液。同时&…

接口自动化-requests库

requests库是用来发送请求的库,本篇用来讲解requests库的基本使用。 1.安装requests库 pip install requests 2.requests库底层方法的调用逻辑 (1)get / post / put / delete 四种方法底层调用 request方法 注意:data和json都…

品鉴中的食物搭配:如何创造美味的红酒与食物组合

品鉴云仓酒庄雷盛红酒时,食物搭配是一个不可忽视的环节。通过巧妙的搭配,红酒与食物可以相互衬托,呈现出更加美妙的风味。下面就让我们一起探讨如何创造美味的红酒与食物组合。 首先,了解红酒与食物的搭配原则是关键。一般来说&a…

本特利330104-00-20-05-02-00振动监测输出模块在PLC系统中的应用与集成

本特利330104-00-20-05-02-00振动监测输出模块在PLC系统中的应用与集成 一、引言 在现代工业自动化领域中,机械设备的振动监测是确保设备稳定运行、预防故障发生的重要手段之一。本特利(Bently Nevada)作为全球知名的振动监测解决方案提供商…

flowable工作流设置审批人为指定角色+部门的实现方式

一、绘制流程图页面配置 1、指定固定审批角色组织的实现 如上图红框部分,需要修改此处为需求对应。比如此时红框不支持指定某个部门下的指定角色这种组合判断的审批人。则需要修改页面变成选完角色同时也选择上部门统一生成一个group标识。 修改完后,生…

Stable Diffusion基础界面介绍

SD是stable diffusion的简称,AI绘画的一个开源应用,(不需要科学上网),目前使用的版本是B站UP秋葉aaaki整理的最终版。 安装教程详见 B站up主 秋葉aaaki,教程下有提供stable diffusion的下载链接。 安装必要的三个基础…

甲方运营工具——安天威胁情报中心每日热点事件爬取

一、背景 本次是采用python爬取安天威胁情报中心的每日热点事件,进行甲方内部威胁情报同步的这样一个需求开发。 界面及内容: 二、逐步实现 2.1、分析请求页面的数据来源 通过请求页面我们看到安天对于第三方引用这些内容的真实性等是不予负责的;我们看到该页面的数据来源…

物联网平台:连接万物的桥梁

物联网(IoT,Internet of Things)平台是物联网生态系统中的核心组件,它允许不同设备、传感器和服务之间进行通信和数据交换。随着技术的不断进步,物联网平台已经成为实现智能城市、智能家居、工业自动化等应用的关键技术…