洛谷 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
 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

netlist

在电子设计自动化&#xff08;EDA&#xff09;中&#xff0c;网表&#xff08;Netlist&#xff09; 是描述电路设计连接关系的核心数据结构&#xff0c;本质上是电路元件&#xff08;如逻辑门、晶体管、模块&#xff09;及其互连关系的 文本化或结构化表示。它是从抽象设计&…

Cadence学习笔记之---原理图设计基本操作

目录 01 | 引 言 02 | 环境描述 03 | 原理图工具介绍 04 | 原理图设计基本操作 05 | 生成页间引用 06 | 元件自动编号 07 | 结 尾 01 | 引 言 书接上回&#xff0c;在前文中讲述了怎样制作常用的库元件&#xff0c;如电阻、二极管&#xff0c;IC器件&#xff0c;以及怎…

【华为HCIP | 华为数通工程师】821—多选解析—第十七页

多选835、IS-IS协议所使用的NSAP地址主要由哪几个部分构成? A、AREA ID B、SEL C、DSCp D、SYSTEM ID 解析:NSAP地址:网络服务访问点(Network Service Access Point)是 OSI 协议中用于定位资源的地址。NSAP 的地址结构如图所示,它由 IDP(Initial Domain …

Linux系统中命令设定临时IP

1.查看ip ---ifconfig 进入指定的网络接口 ifconfig ens160 建立服务器临时IP ifconfig ens160 ip地址 network 系统进行重启后&#xff0c;临时IP将会消失 ip address add ip地址 dev 服务器 ---添加临时ip ip address delete ip地址 dev 服务器 ---删除临时ip 设置ip&a…

深度学习之卷积神经网络入门

一、引言 在深度学习蓬勃发展的今天&#xff0c;卷积神经网络&#xff08;Convolutional Neural Network&#xff0c;简称 CNN&#xff09;凭借其在图像识别、计算机视觉等领域的卓越表现&#xff0c;成为了人工智能领域的核心技术之一。从手写数字识别到复杂的医学影像分析&a…

使用RabbitMQ实现判题功能

这次主要选用RabbitMQ消息队列来对判题服务和题目服务解耦&#xff0c;题目服务只需要向消息队列发送消息&#xff0c;判题服务从消息队列中取信息去执行判题&#xff0c;然后异步更新数据库即可。 五一宝宝请快点跑~~~~~ 先回顾一下RabbitMQ &#xff08;1&#xff09;引入依…

HTML5后台管理界面开发

HTML5后台管理界面开发 随着互联网技术的快速发展&#xff0c;后台管理系统在各个业务领域中扮演着越来越重要的角色。它不仅帮助企业管理数据、用户和业务流程&#xff0c;也为决策提供了依据。本文将介绍如何使用HTML5开发一个简单的后台管理界面&#xff0c;并结合代码示例…

Oracle 11g RAC手动打补丁详细步骤

备份&#xff1a; 节点1&#xff1a; root用户备份GI_home tar cvf Ghome_backup.tar /oracle/grid/crsoracle用户备份ORACLE_HOME tar cvf ohome_backup.tar $ORACLE_HOME节点2&#xff1a; root用户备份GI_home tar cvf Ghome_backup.tar /oracle/grid/crsoracle用户备份…

xfce桌面汉化设置

文章目录 汉化配置小结 汉化配置 检查当前语言环境&#xff0c;执行指令locale&#xff0c;如果输出的 LANG、LC_ALL 等未包含 zh_CN.UTF-8&#xff0c;需要设置中文环境。 安装中文语言包 sudo apt update sudo apt install language-pack-zh-hans language-pack-zh-hant设置…

如何在IDEA中高效使用Test注解进行单元测试?

在软件开发过程中&#xff0c;单元测试是保证代码质量的重要手段之一。而IntelliJ IDEA作为一款强大的Java开发工具&#xff0c;提供了丰富的功能来支持JUnit测试&#xff0c;尤其是通过Test注解可以快速编写和运行单元测试。那么&#xff0c;如何在IDEA中高效使用Test注解进行…

Linux 路由

Linux路由表 一&#xff1a;查看路由二&#xff1a;添加路由三&#xff1a;删除路由四&#xff1a;路由测试五&#xff1a;路由选择机制1.路由表2.路由匹配机制3.策略路由 示例1.多网卡分流2.VPN分流3.双默认路由负载均衡 一&#xff1a;查看路由 # 查看 main 表 ip route sho…

x-cmd install | brows - 终端里的 GitHub Releases 浏览器,告别繁琐下载!

目录 核心功能与优势安装适用场景 还在为寻找 GitHub 项目的特定 Release 版本而苦恼吗&#xff1f;还在网页上翻来覆去地查找下载链接吗&#xff1f;现在&#xff0c;有了 brows&#xff0c;一切都将变得简单高效&#xff01; brows 是一款专为终端设计的 GitHub Releases 浏览…

Vue多地址代理端口调用

第一种方法 config.ts文件 配置多条代理服务端口 如下所示:proxy: {/app: {// 其他的端口target: http://125.124.5.117:12877/,changeOrigin: true}/api: {//默认的端口// http://192.168.31.53:5173/target: http://192.168.31.199:18777/,changeOrigin: true,rewrite: pat…

青少年编程与数学 02-018 C++数据结构与算法 10课题、搜索[查找]

青少年编程与数学 02-018 C数据结构与算法 10课题、搜索[查找] 一、线性搜索&#xff08;Linear Search&#xff09;原理实现步骤代码示例&#xff08;C&#xff09;复杂度分析优缺点 二、二分搜索&#xff08;Binary Search&#xff09;原理代码示例&#xff08;C&#xff09;…

Linux操作系统从入门到实战(三)Linux基础指令(上)

Linux操作系统从入门到实战&#xff08;三&#xff09;Linux基础指令&#xff08;上&#xff09; 前言一、ls 指令二、pwd三、cd四、touch 指令五、mkdir六、rmdir 指令和 rm 指令七、man 指令八、cp九、mv 指令十、cat 指令十一、 more 指令十二、less 指令十四、head 指令十五…

Java对象转换的多种实现方式

Java对象转换的多种实现方式 在Java开发中&#xff0c;对象转换是一个常见的需求。特别是在不同层次间传递数据时&#xff0c;通常需要将一个对象转换为另一个对象。虽然JSON序列化/反序列化是一种常见的方法&#xff0c;但在某些场景下可能并不是最佳选择。本文将总结几种常见…

头歌实训之索引

&#x1f31f; 各位看官好&#xff0c;我是maomi_9526&#xff01; &#x1f30d; 种一棵树最好是十年前&#xff0c;其次是现在&#xff01; &#x1f680; 今天来学习C语言的相关知识。 &#x1f44d; 如果觉得这篇文章有帮助&#xff0c;欢迎您一键三连&#xff0c;分享给更…

Rundeck 介绍及安装:自动化调度与执行工具

Rundeck介绍 概述&#xff1a;Rundeck 是什么&#xff1f; Rundeck 是一款开源的自动化调度和任务执行工具&#xff0c;专为运维场景设计&#xff0c;帮助工程师通过统一的平台管理和执行跨系统、跨节点的任务。它由 PagerDuty 维护&#xff08;2016 年收购&#xff09;&#…

基于 Python 的自然语言处理系列(85):PPO 原理与实践

&#x1f4cc; 本文介绍如何在 RLHF&#xff08;Reinforcement Learning with Human Feedback&#xff09;中使用 PPO&#xff08;Proximal Policy Optimization&#xff09;算法对语言模型进行强化学习微调。 &#x1f517; 官方文档&#xff1a;trl PPOTrainer 一、引言&…

珍爱网:从降本增效到绿色低碳,数字化新基建价值凸显

2024年12月24日&#xff0c;法大大联合企业绿色发展研究院发布《2024签约减碳与低碳办公白皮书》&#xff0c;深入剖析电子签在推动企业绿色低碳转型中的关键作用&#xff0c;为企业实现环境、社会和治理&#xff08;ESG&#xff09;目标提供新思路。近期&#xff0c;法大大将陆…