最短路径的弗洛伊德算法
实现计算有向图没有负权回路的的任何点对的最短路径程序输入的有向图示#include iostream #include vector #include queue #include unordered_set #include climits #include unordered_map using namespace std; void shortestpath_FLOYD(int n, long long (a)[4][4], int(path)[4][4], int(Edge)[4][4]) { for (int i 0; i n; i) //初始化数组a 和path for (int j 0; j n; j) { a[i][j] Edge[i][j]; if (i ! j a[i][j] std::numeric_limitsfloat::max()) path[i][j] i; //vi 与vj 之间有弧 else path[i][j] 99999; } for (int k 0; k n; k) //计算每一对顶点之间的A( k )值 for (int i 0; i n; i) for (int j 0; j n; j) if (a[i][k] a[k][j] a[i][j]) { a[i][j] a[i][k] a[k][j]; path[i][j] path[k][j]; } } void printshortestPath_printlength(long long acopy[][4], int pathcopy[][4],int source , int target) { std::cout The shortest path from source to target is: std::endl; std::cout (acopy[source][target]) std::endl; if (acopy[source][target] INT_MAX) { std::cout INT_MAX stands for the fact that source can not reach target ! std::endl; } else { std::cout The path is : std::endl; std::cout target --; while (pathcopy[source][target] ! source) { std::cout pathcopy[source][target] --; target pathcopy[source][target]; } std::cout pathcopy[source][target] endl; } std::cout End std::endl; } int main() { int source; int target; int n 4; int Edge[4][4] { {0,1,INT_MAX,4}, {INT_MAX,0,9,2}, {3,5,0,8}, {INT_MAX, INT_MAX,INT_MAX,0}, // 实验 3--2 没有 链路 }; int path[4][4] { -1 }; long long a[4][4] { 0 }; std::cout sizeof(long long) endl; std::cout Enter the source: std::endl; cin source; std::cout Enter the target: std::endl; cin target; shortestpath_FLOYD(n,a,path,Edge); std::cout The ultimate matrix a is : std::endl; for (int i0 ; i4 ; i ) for (int j 0; j 4; j) { std::cout a[i][j] ; if (j 3) { std::cout endl; } } std::cout The ultimate path matrix is : std::endl; for (int i 0; i 4; i) for (int j 0; j 4; j) { std::cout path[i][j] ; if (j 3) { std::cout endl; } } printshortestPath_printlength(a, path, source, target); }结果说明最终的最短距离矩阵中 如果值为INT_MAX 2147483647 表示 点对之间无路径可通最终输出的路径矩阵 path表示点对 path[i][j] 中回溯的上一个节点点对自己的回溯无实际意义用path[i][i] 99999特殊标识 表示

相关新闻

099、多摄融合与变焦系统:广角到长焦的无缝切换算法

099、多摄融合与变焦系统:广角到长焦的无缝切换算法

099、多摄融合与变焦系统:广角到长焦的无缝切换算法 一个让我失眠三天的Bug 2019年某旗舰机项目,DVT阶段。客户在发布会前一天反馈:从广角切到长焦时,画面会“抖”一下,像被人推了一把。我盯着log看了三天,发现不是防抖的问题——是融合算法在切换瞬间把两路sensor的视差…

2026/7/22 17:06:59阅读更多 →
3个关键问题与解决方案:Pony V7如何让AI角色生成效率提升40%

3个关键问题与解决方案:Pony V7如何让AI角色生成效率提升40%

3个关键问题与解决方案:Pony V7如何让AI角色生成效率提升40% 【免费下载链接】pony-v7-base 项目地址: https://ai.gitcode.com/hf_mirrors/purplesmartai/pony-v7-base 当我们面对AI角色生成时,常常会遇到三个核心问题:复杂的空间关…

2026/7/22 17:06:59阅读更多 →
Java虚拟机:栈帧中的局部变量表

Java虚拟机:栈帧中的局部变量表

写在前面在 Java 开发中,我们都曾遇到过 StackOverflowError,但你是否思考过:为什么同样的递归深度,在不同的方法上表现完全不同? 为什么一个方法能递归 1098 次,而另一个只能递归 303 次?今天&…

2026/7/22 17:06:59阅读更多 →
计算机毕业设计之基于SpringBoot的生鲜交易系统

计算机毕业设计之基于SpringBoot的生鲜交易系统

随着互联网技术的飞速发展以及人们对生鲜食品品质与便捷性需求的提升,传统生鲜交易模式已难以满足现代消费者的多元化需求。在此背景下,本研究旨在开发一款基于Spring Boot框架的生鲜交易系统,采用Java语言进行后端开发,结合Vue框…

2026/7/22 18:03:12阅读更多 →
计算机毕业设计之基于SpringBoot的生鲜食品供应链管理系统的设计与实现

计算机毕业设计之基于SpringBoot的生鲜食品供应链管理系统的设计与实现

随着消费者对食品安全、新鲜度及便捷性的要求日益提高,生鲜食品行业面临着前所未有的市场竞争压力。传统供应链管理方式往往存在信息孤岛、流程繁琐、响应速度慢等问题,难以满足市场快速变化的需求。同时,生鲜食品因其易腐易损的特性&#xf…

2026/7/22 18:03:12阅读更多 →
local-talking-llm常见问题解决:99%用户会遇到的麦克风、模型加载问题修复方案

local-talking-llm常见问题解决:99%用户会遇到的麦克风、模型加载问题修复方案

local-talking-llm常见问题解决:99%用户会遇到的麦克风、模型加载问题修复方案 【免费下载链接】local-talking-llm A talking LLM that runs on your own computer without needing the internet. 项目地址: https://gitcode.com/gh_mirrors/lo/local-talking-ll…

2026/7/22 18:03:12阅读更多 →
计算机毕业设计之基于SpringBoot的生鲜销售系统的设计与实现

计算机毕业设计之基于SpringBoot的生鲜销售系统的设计与实现

在互联网高速发展的时代, 大数据技术已覆盖到各行各业, 随着新经济的需求和新技术的发展, 产生的用户信息数据和业务支撑数据也随之变多, 而传统关系型数据库对于海量数据的查询和分析都存在高成本和低效率的问题, 着让…

2026/7/22 18:03:12阅读更多 →
pyFDA滤波器分析工具:频率响应、脉冲响应与零极点图

pyFDA滤波器分析工具:频率响应、脉冲响应与零极点图

pyFDA滤波器分析工具:频率响应、脉冲响应与零极点图 【免费下载链接】pyfda Python Filter Design Analysis Tool 项目地址: https://gitcode.com/gh_mirrors/py/pyfda pyFDA是一款强大的Python滤波器设计分析工具,能够帮助工程师和开发者轻松设计…

2026/7/22 18:03:12阅读更多 →
国标GB28181视频监控平台EasyCVR视频快照自动抓拍:关键画面秒级留证,告别“翻录像“的痛苦

国标GB28181视频监控平台EasyCVR视频快照自动抓拍:关键画面秒级留证,告别“翻录像“的痛苦

你有没有遇到过这种情况:明明摄像头一直在录,但想找某个关键时刻的画面,却要翻半小时录像?EasyCVR的视频快照抓拍功能,就是为解决这个问题设计的——它能在关键时刻自动截图留存,让你秒级定位关键画面。一、…

2026/7/22 18:01:12阅读更多 →
Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/22 0:53:59阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/22 0:53:59阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/22 0:53:59阅读更多 →
中小企业小程序开发公司怎么选:预算、上手和售后避坑指南

中小企业小程序开发公司怎么选:预算、上手和售后避坑指南

中小企业做小程序,最常见的矛盾是预算有限,但又不希望功能太单薄;没有技术团队,但又希望后续能自己运营;想快速上线,又担心隐性收费和售后失联。选型时如果只看“低价套餐”或“案例数量”,很容…

2026/7/22 0:01:17阅读更多 →
GEO优化如何沉淀长期内容资产?广拓时代谈AI搜索时代的内容ROI

GEO优化如何沉淀长期内容资产?广拓时代谈AI搜索时代的内容ROI

企业做营销,最怕钱花完了,资产没有留下。 效果广告能带来一段时间的曝光,但预算停止后,流量往往也随之停止。短视频内容可能在几天内冲高,也可能很快沉下去。AI搜索时代,企业需要重新思考一个问题&#xff…

2026/7/22 0:01:17阅读更多 →
Agent 终态判定:何时该停止思考、给出最终回复

Agent 终态判定:何时该停止思考、给出最终回复

Agent 终态判定:何时该停止思考、给出最终回复 一、你的 Agent 在"再想想"的循环里绕了 12 轮,用户已经关窗口了 Agent 与人最大的区别是:人知道什么时候该停下来给答案,Agent 会一直"想"下去。你给 Agent 接…

2026/7/22 0:01:17阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/21 22:53:50阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/21 18:53:30阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/21 18:53:30阅读更多 →