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

洛谷 B3647:【模板】Floyd 算法

【题目来源】
https://www.luogu.com.cn/problem/B3647

【题目描述】
给出一张由 n 个点 m 条边组成的无向图。
求出所有点对 (i,j) 之间的最短路径。

【输入格式】
第一行为两个整数 n,m,分别代表点的个数和边的条数。
接下来 m 行,每行三个整数 u,v,w,代表 u,v 之间存在一条边权为 w 的边。

【输出格式】
输出 n 行每行 n 个整数。
第 i 行的第 j 个整数代表从 i 到 j 的最短路径。

【输入样例】
4 4
1 2 1
2 3 1
3 4 1
4 1 1

【输出样例】
0 1 2 1
1 0 1 2
2 1 0 1
1 2 1 0

【说明/提示】
对于 100% 的数据,n≤100,m≤4500,任意一条边的权值 w 是正整数且 1⩽w⩽1000。

数据中可能存在重边

【算法分析】
● Floyd 算法‌(又称 Floyd-Warshall 算法)是一种用于求解‌
所有顶点对之间最短路径‌的动态规划算法。它适用于‌带权有向图或无向图‌,可以处理‌正权边和负权边‌(但不能有负权环)。

● 本题数据中可能存在重边,若不处理,会有一个样例不过。

若有重边,处理方法是只保留权值最小的那条边。代码如下:

while(m--) {cin>>a>>b>>c;e[a][b]=min(e[a][b],c); //e[a][b]=c;e[b][a]=min(e[b][a],c); //e[b][a]=c;
}

● 若 e[i][i]<0,则存在负权环。

【算法代码】

#include <bits/stdc++.h>
using namespace std;const int inf=0x3f3f3f3f;
int e[100][100];
int a,b,c;
int n,m;int main() {cin>>n>>m;for(int i=1; i<=n; i++) {for(int j=1; j<=n; j++) {if(i==j) e[i][j]=0;else e[i][j]=inf;}}while(m--) {cin>>a>>b>>c;e[a][b]=min(e[a][b],c); //e[a][b]=c;e[b][a]=min(e[b][a],c); //e[b][a]=c;}for(int k=1; k<=n; k++)for(int i=1; i<=n; i++)for(int j=1; j<=n; j++)if(e[i][j]>e[i][k]+e[k][j])e[i][j]=e[i][k]+e[k][j];for(int i=1; i<=n; i++) {for(int j=1; j<=n; j++) {cout<<e[i][j]<<" ";}cout<<endl;}return 0;
}/*
in:
4 4
1 2 1
2 3 1
3 4 1
4 1 1out:
0 1 2 1
1 0 1 2
2 1 0 1
1 2 1 0
*/



【参考文献】
https://blog.csdn.net/ahalei/article/details/22038539

https://www.cnblogs.com/CLGYPYJ/p/17586069.html
 

相关文章:

  • 系统测试的技术要求
  • 404了怎么办快把路由给我断掉(React配置路由)
  • 信创时代开发工具选择指南:国产替代背景下的技术生态与实践路径
  • Ollama 是什么
  • POLARIS土壤相关数据集
  • 基于CATIA参数化管道建模的自动化插件开发实践——NX建模之管道命令的参考与移植
  • 企业级AI开发利器:Spring AI框架深度解析与实战
  • 传感器模块有助于加速嵌入式视觉开发
  • Infortrend普安存储 KS 私有云方案,构建生产线AOI光学检测数据的高速处理平台
  • OpenCv高阶(十)——光流估计
  • 第六章 进阶06 读书群第一次团建
  • 五一去荣昌吃卤鹅?基于Java和天地图的寻找荣昌卤鹅店实践
  • 【AI】[特殊字符]生产规模的向量数据库 Pinecone 使用指南
  • 京东平台关键字搜索接口开发指南:Python实现与代码详解
  • Tailwind CSS 实战:基于 Kooboo 构建企业官网页面(一)
  • 线程函数库
  • Dify依赖管理poetry切换为uv
  • C语言 函数补充
  • 【差分隐私】basic primitive的含义
  • 【C++指南】告别C字符串陷阱:如何实现封装string?
  • 俄罗斯准备在没有先决条件的情况下与乌克兰进行谈判
  • 苏迪曼杯即将在厦门打响,国羽向创纪录的14冠进军
  • 习近平在中共中央政治局第二十次集体学习时强调,坚持自立自强,突出应用导向,推动人工智能健康有序发展
  • 为国出征指纹却无法识别?他刷新了我军在这一项目的最好成绩
  • 中国驻英国大使郑泽光:中国反制美国关税是为了维护国际公平正义和多边贸易体制
  • 贝壳:网传“深圳贝壳内部通知”不实