news 2026/5/2 20:38:49

题解:AcWing 6055 最短路径

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
题解:AcWing 6055 最短路径

本文分享的必刷题目是从蓝桥云课洛谷AcWing等知名刷题平台精心挑选而来,并结合各平台提供的算法标签和难度等级进行了系统分类。题目涵盖了从基础到进阶的多种算法和数据结构,旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。

欢迎大家订阅我的专栏:算法题解:C++与Python实现!

附上汇总贴:算法竞赛备考冲刺必刷题(C++) | 汇总


【题目来源】

AcWing:6055. 最短路径 - AcWing题库

【题目描述】

给出一个有向图G = ( V , E ) G=(V,E)G=(V,E),和一个源点v 0 ∈ V v_0\in Vv0V,请写一个程序输出v 0 v_0v0和图G GG中其它顶点的最短路径。

只要所有的有向环权值和都是正的,我们就允许图的边有负值。

顶点的标号从1 11n nnn nn为图G GG的顶点数)。

【输入】

1 11行:一个正数n nn,表示图G GG的顶点总数。

2 22行:一个整数,表示源点v 0 v_0v0v 0 ∈ V v_0\in Vv0Vv 0 v_0v0可以是图G GG中任意一个顶点)。

3 33至第n + 2 n+2n+2行,用一个邻接矩阵W WW给出了这个图。

【输出】

共包含n − 1 n-1n1行,按照顶点编号从小到大的顺序,每行输出源点v 0 v_0v0到一个顶点的最短距离。

每行的具体格式参照样例。

【输入样例】

5 1 0 2 - - 10 - 0 3 - 7 - - 0 4 - - - - 0 5 - - 6 - 0

【输出样例】

(1 -> 2) = 2 (1 -> 3) = 5 (1 -> 4) = 9 (1 -> 5) = 9

【算法标签】

#SPFA#

【代码详解】

#include<bits/stdc++.h>usingnamespacestd;#defineN105#defineINF0x3f3f3f3fintn,v0;// n: 顶点数, v0: 源点intedge[N][N];// 邻接矩阵存储图intdis[N];// 从源点到各顶点的最短距离boolvis[N];// 顶点是否在队列中的标记// SPFA算法(Shortest Path Faster Algorithm)voidspfa(){queue<int>que;// 队列用于存储待处理的顶点que.push(v0);// 源点入队vis[v0]=true;// 标记源点在队列中memset(dis,0x3f,sizeof(dis));// 初始化所有距离为无穷大dis[v0]=0;// 源点到自身的距离为0while(que.empty()==false)// 当队列不为空{intu=que.front();// 取出队首顶点que.pop();vis[u]=false;// 标记顶点不在队列中// 遍历顶点u的所有邻接点for(inti=1;i<=n;++i){// 如果存在从u到i的边,且可以松弛if(edge[u][i]<INF&&dis[i]>dis[u]+edge[u][i]){dis[i]=dis[u]+edge[u][i];// 松弛操作if(vis[i]==false)// 如果顶点i不在队列中{vis[i]=true;// 标记在队列中que.push(i);// 入队}}}}}intmain(){inta;// 临时变量用于输入scanf("%d %d",&n,&v0);// 输入顶点数和源点// 输入邻接矩阵for(inti=1;i<=n;++i){for(intj=1;j<=n;++j){if(scanf("%d",&a)==1)// 如果是正确输入,会返回1{edge[i][j]=a;// 存储边权}else{edge[i][j]=INF;// 如果没有边,设置为无穷大}}}spfa();// 执行SPFA算法// 输出从源点到其他各顶点的最短距离for(inti=1;i<=n;++i){if(i!=v0)// 不输出源点到自身的距离{printf("(%d -> %d) = %d\n",v0,i,dis[i]);}}return0;// 程序正常结束}

【运行结果】

5 1 0 2 - - 10 - 0 3 - 7 - - 0 4 - - - - 0 5 - - 6 - 0 (1 -> 2) = 2 (1 -> 3) = 5 (1 -> 4) = 9 (1 -> 5) = 9
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/2 20:38:30

独立开发者如何利用Taotoken按需调用大模型并精准控制月度预算

独立开发者如何利用Taotoken按需调用大模型并精准控制月度预算 1. 预算控制的核心需求 独立开发者和小微团队在接入大模型服务时&#xff0c;往往面临预算有限的挑战。Taotoken提供的按token计费机制和用量监控功能&#xff0c;能够帮助开发者将AI成本控制在可预测范围内。与…

作者头像 李华
网站建设 2026/5/2 20:37:30

单北斗GNSS在变形监测中的应用与发展潜力探讨

本文将详细探讨单北斗GNSS在变形监测中的多元应用及其未来潜力&#xff0c;聚焦于位移监测的基本原理和技术优势。单北斗GNSS通过高精度的卫星定位技术&#xff0c;可以在各类基础设施和地质灾害监测中提供及时、准确的数据支持&#xff0c;例如在桥梁和隧道的实时监测中&#…

作者头像 李华
网站建设 2026/5/2 20:37:28

别再只传不管了!SAP请求传输后,用SCMP/SCU3做二次校验的完整流程

SAP请求传输后的二次校验&#xff1a;SCMP/SCU3深度操作指南 在SAP项目实施过程中&#xff0c;代码和配置的跨系统传输是日常开发工作的核心环节。许多开发团队常陷入一个误区&#xff1a;一旦点击了传输按钮&#xff0c;便默认所有对象都已成功迁移到目标系统。这种"传完…

作者头像 李华
网站建设 2026/5/2 20:36:26

Photon-GAMS光影包终极指南:如何让你的Minecraft世界焕然一新

Photon-GAMS光影包终极指南&#xff1a;如何让你的Minecraft世界焕然一新 【免费下载链接】Photon-GAMS Personal fork of Photon shaders 项目地址: https://gitcode.com/gh_mirrors/ph/Photon-GAMS 还在为Minecraft原版画面过于简单而苦恼吗&#xff1f;Photon-GAMS光…

作者头像 李华
网站建设 2026/5/2 20:31:24

MySQL 8.0.24 原地升级到 8.0.34 保姆级避坑指南(CentOS 7 + RPM包实战)

MySQL 8.0.24 原地升级到 8.0.34 保姆级避坑指南&#xff08;CentOS 7 RPM包实战&#xff09; 在CentOS 7生产环境中执行MySQL原地升级&#xff0c;就像给飞行中的飞机更换引擎——必须确保每一个螺丝都拧紧&#xff0c;每一个步骤都验证到位。本文将带你穿越升级雷区&#xf…

作者头像 李华
网站建设 2026/5/2 20:26:55

想让论文 AI 率从 70% 降到 5%?2026 降 AI 软件排行第 1 这样用。

想让论文 AI 率从 70% 降到 5%&#xff1f;2026 降 AI 软件排行第 1 这样用。 70% 到 5%——这是 65 个百分点的跨度。 很多人觉得这事不可能。实际上只要工具选对、流程跑对、迭代次数够&#xff0c;65 个百分点的跨度可以在一天内完成。这一篇给一份 5 步标准教程&#xff…

作者头像 李华