当前位置: 首页 > 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面试思路引导
  • 4月一二线城市新房价格环比上涨,沪杭涨幅居百城前列
  • 中央党校(国家行政学院)举行2025年春季学期第一批进修班毕业典礼
  • 国台办:“台独”是绝路,外人靠不住
  • 中办、国办印发《安全生产考核巡查办法》
  • 西藏阿里地区日土县连发两次地震,分别为4.8级和3.8级
  • 圆桌|特朗普上台百日未能结束俄乌冲突,若美国“退出”会发生什么?