最短路径的弗洛伊德算法
实现计算有向图没有负权回路的的任何点对的最短路径程序输入的有向图示#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/25 8:42:04 阅读更多 →
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/24 20:11:51 阅读更多 →
Java虚拟机:栈帧中的局部变量表

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

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

2026/7/25 7:43:53 阅读更多 →

最新新闻

GMAT Verbal提分失效的真相:92%考生忽略的AI语境建模缺口(附3大可立即执行的Prompt调优模板)

GMAT Verbal提分失效的真相:92%考生忽略的AI语境建模缺口(附3大可立即执行的Prompt调优模板)

更多请点击: https://kaifayun.com 第一章:GMAT Verbal提分失效的AI归因诊断 当考生反复使用AI驱动的GMAT Verbal训练工具却未见实质性进步时,问题往往不在于努力不足,而在于模型反馈机制与人类语言认知路径存在结构性错配。主流…

2026/7/25 19:56:31 阅读更多 →
深度强化学习在智能制造实时调度中的应用与优化

深度强化学习在智能制造实时调度中的应用与优化

1. 项目背景与核心挑战在现代智能制造环境中,生产系统面临的最大痛点之一是如何高效处理动态插入的紧急订单。传统调度算法在面对频繁变动的生产需求时往往表现僵化,而基于规则的系统又难以应对复杂多变的车间环境。这正是我们开发这套深度强化学习实时调…

2026/7/25 19:56:31 阅读更多 →
智能代理驱动的 AI 钓鱼邮件防御体系研究 —— 基于 AegisAI 技术实践分析

智能代理驱动的 AI 钓鱼邮件防御体系研究 —— 基于 AegisAI 技术实践分析

摘要 生成式人工智能规模化落地后,网络攻击者依托大语言模型实现高度定制化、高仿真邮件钓鱼攻击,传统基于静态规则、特征库匹配的邮件安全防护体系出现显著防御失效问题。市场调研数据显示,超半数 AI 生成钓鱼邮件可绕过传统邮件安全网关&am…

2026/7/25 19:56:31 阅读更多 →
AI 威胁加速背景下医疗行业 IAM 韧性建设路径研究 —— 基于 Health-ISAC 基准调研报告实证

AI 威胁加速背景下医疗行业 IAM 韧性建设路径研究 —— 基于 Health-ISAC 基准调研报告实证

摘要 生成式人工智能技术普及重构了医疗行业网络攻击逻辑,AI 驱动深度伪造、语音仿冒、自动化钓鱼攻击逐步取代传统勒索软件,成为医疗机构首席信息安全官(CISO)首要安全焦虑来源。Health-ISAC 2026 年首届 CISO 基准调研覆盖 76 家…

2026/7/25 19:56:31 阅读更多 →
企业没有机房如何组织线上考试?

企业没有机房如何组织线上考试?

随着企业培训数字化的不断推进,线上考试已成为考核员工学习成果的重要手段。然而,现实中仍有大量企业没有自建机房,或缺乏完整的 IT 运维团队,这给企业培训负责人带来了部署和管理上的挑战:如何保证考试系统在高并发情…

2026/7/25 19:56:31 阅读更多 →
UE5 Python UDP组播远程控制:轻量级多设备同步方案

UE5 Python UDP组播远程控制:轻量级多设备同步方案

1. 项目概述:为什么要在UE5里搞Python远程控制?如果你是一个UE5开发者,或者是一个技术美术、技术策划,肯定遇到过这样的场景:在编辑器里调整一个复杂的材质参数,或者测试一个需要多人协作的关卡逻辑&#x…

2026/7/25 19:55:30 阅读更多 →

日新闻

突破文档下载限制:kill-doc让你看到的都能保存

突破文档下载限制:kill-doc让你看到的都能保存

突破文档下载限制:kill-doc让你看到的都能保存 【免费下载链接】kill-doc 看到经常有小伙伴们需要下载一些免费文档,但是相关网站浏览体验不好各种广告,各种登录验证,需要很多步骤才能下载文档,该脚本就是为了解决您的…

2026/7/25 0:00:35 阅读更多 →
C++ string类模拟实现:从深拷贝到内存管理的完整指南

C++ string类模拟实现:从深拷贝到内存管理的完整指南

1. 项目概述:为什么我们要“手撕”string类?在C的学习道路上,尤其是从C语言过渡到C的“初阶”阶段,string类绝对是一个绕不开的核心。标准库里的std::string用起来太方便了,、find、substr,几个操作符和函数…

2026/7/25 0:00:35 阅读更多 →
三角洲寻宝鼠工具:高效文件搜索与资源管理实战指南

三角洲寻宝鼠工具:高效文件搜索与资源管理实战指南

1. 先搞清楚“三角洲寻宝鼠”到底是什么工具从名称来看,“三角洲寻宝鼠”更像是一个资源查找或文件检索类工具,而不是游戏或娱乐软件。这类工具的核心价值在于帮助用户快速定位特定资源,比如文档、图片、压缩包或特定格式的文件。如果你经常需…

2026/7/25 0:00:35 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/7/24 18:52:18 阅读更多 →

月新闻