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

Floyd(弗洛伊德)算法总结

知识概览

  • Floyd算法适合解决多源汇最短路问题,其中源点是起点,汇点是终点。时间复杂度是O(n^3)

例题展示

题目链接

活动 - AcWing 系统讲解常用算法与数据结构,给出相应代码模板,并会布置、讲解相应的基础算法题目。icon-default.png?t=N7T8https://www.acwing.com/problem/content/856/

题解

Floyd算法基于动态规划的思想,主要是三重循环,先遍历k,i和j的遍历顺序谁先谁后都可以。

代码

#include <cstring>
#include <iostream>
#include <algorithm>using namespace std;const int N = 210, INF = 1e9;int n, m, Q;
int d[N][N];void floyd()
{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]);
}int main()
{scanf("%d%d%d", &n, &m, &Q);for (int i = 1; i <= n; i++)for (int j = 1; j <= n; j++)if (i == j) d[i][j] = 0;else d[i][j] = INF;while (m--){int a, b, w;scanf("%d%d%d", &a, &b, &w);d[a][b] = min(d[a][b], w);}floyd();while (Q--){int a, b;scanf("%d%d", &a, &b);if (d[a][b] > INF / 2) puts("impossible");else printf("%d\n", d[a][b]);}return 0;
}

参考资料

  1. AcWing算法基础课
http://www.lryc.cn/news/267176.html

相关文章:

  • 西南科技大学计算机网络实验二 (IP协议分析与以太网协议分析)
  • SICP : The Elements of Programming
  • 支付宝、学习强国小程序input、textarea数据双向绑定
  • AI“百模大战”现状:向垂直、B端谋场景,算力仍是主要制约因素
  • 手机上的软件怎么修改网络IP地址
  • 返回按钮点击坐标
  • arm32 arm64 读取PMCCNTR cpu cycle counter
  • vue 项目/备案网页/ip网页打包成 apk 安装到平板/手机(含vue项目跨域代理打包成apk后无法访问接口的解决方案)
  • 面试复盘4——后端开发——一面
  • 使用 Postman 进行并发请求:实用教程与最佳实践
  • 河南工程学院第六届程序设计竞赛-A组-题解
  • 韩版传奇 2 源码分析与 Unity 重制(二)客户端启动与交互流程
  • JVM面试——运行时数据区
  • ssh工具 向指定的ssh服务器配置公钥
  • uni-app pages.json之globalStyle全局页面样式配置
  • Blazor 混合开发_MAUI+Vue_WPF+Vue
  • udp异步方式接收消息
  • 【RocketMQ笔记01】安装RocketMQ消息队列运行环境
  • 使用 Privoxy 实现对多域名的定向转发
  • 《PySpark大数据分析实战》-19.NumPy介绍ndarray介绍
  • 图解LRU缓存
  • FFmpeg常见命令行
  • 智能优化算法应用:基于斑马算法3D无线传感器网络(WSN)覆盖优化 - 附代码
  • 《C++避坑神器·二十五》简单搞懂json文件的读写之遍历json文件读写
  • 使用 fixture 机制重构 appium_helloworld
  • 基于python的excel检查和读写软件
  • Podman配置mongodb
  • java实现矩阵谱峰搜索算法
  • Jenkins的特殊操作定时自动执行任务以及测试报告调优
  • 【Grafana】Grafana匿名访问以及与LDAP连接