当前位置: 首页 > news >正文

图论-Floyd算法

在搜索中bfs只适合无权图

若是碰到有权图最简单的方法就是用邻接矩阵-二维矩阵存储每个点对之间的权重,然后用floyd

并且邻接矩阵还可以处理重边的问题(用min)

INF=float('inf')
ma=[[INF]*n for _ in range(n)]for i in range(n):ma[i][i]=0for i in range(m):a,b,c=map(int,input().split())ma[a-1][b-1]=min(ma[a-1][b-1],c)ma[b-1][a-1]=min(ma[b-1][a-1],c)

下面介绍floyd算法,他本质其实就是动态规划

枚举在 i、j 点之间的所有可能点k,用min存储更小的途径

def floyd(graph)# 顶点数量n = len(graph)# 初始化距离矩阵dist = [[graph[i][j] for j in range(n)] for i in range(n)]# 三重循环更新距离矩阵for k in range(n):for i in range(n):for j in range(n):# 如果通过顶点k可以缩短路径,则更新路径长度dist[i][j] = min(dist[i][j], dist[i][k] + dist[k][j])return distd=floyd(ma)

相关文章:

  • aws服务--S3介绍使用代码集成
  • 【Vue】修饰符
  • 前端笔记-AJAX
  • 【自然语言处理与大模型】模型压缩技术之蒸馏
  • 秦智杂志秦智杂志社秦智编辑部2025年第3期目录
  • 合同管理Contract Management
  • CH585单片机的LCD外设怎么驱动段式LCD
  • leetcode149.直线上最多的点数
  • YOLOv5改进CBAM【保姆级教程】
  • OpenCV 图形API(45)颜色空间转换-----将图像从 BGR 色彩空间转换为 YUV 色彩空间函数BGR2YUV()
  • 【教程】Digispark实现串口通信
  • 深入解析Vue3响应式系统:从Proxy实现到依赖收集的核心原理
  • [免费]SpringBoot+Vue博物馆(预约)管理系统【论文+源码+SQL脚本】
  • leetcode 516. Longest Palindromic Subsequence
  • Qt 概述
  • 【Linux】轻量级命令解释器minishell
  • 在线查看网站免费工具 wps, dps, et, ett, wpt 文件格式
  • Java 性能优化:从硬件到软件的全方位思考
  • JavaScript性能优化实战(1):性能优化基础与性能分析工具
  • KRaft面试思路引导
  • 光影连接世界,中国企业出海绘就城市新名片
  • 女子遭前男友泼汽油烧伤致残案二审庭审:检方抗诉称一审量刑不当
  • 普京签署有关批准俄罗斯与伊朗全面战略伙伴关系条约的联邦法令
  • 一周人物| 萨韦利上海画展,陆永安“从董源到塞尚”
  • 今年以来金价涨幅超26%,未来会继续上涨吗?
  • 人民日报:各地扎实开展学习教育,一体推进学查改