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

题解:AcWing 6054 最短路径问题

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

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

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


【题目来源】

AcWing:6054. 最短路径问题 - AcWing题库

【题目描述】

平面上有n nn个点,每个点的坐标均在− 10000 ∼ 10000 -10000\sim 100001000010000之间。

其中的一些点之间有连线。

若有连线,则表示可从一个点到达另一个点,即两点间有通路,通路的距离为两点间的直线距离。

现在的任务是找出从一点到另一点之间的最短路径。

【输入】

n + m + 3 n+m+3n+m+3行,其中:

第一行为整数n nn

2 22行到第n + 1 n+1n+1行(共n nn行),每行两个整数x xxy yy,描述了一个点的坐标。

n + 2 n+2n+2行为一个整数m mm,表示图中连线的个数。

此后的m mm行,每行描述一条连线,由两个整数i iij jj组成,表示第i ii个点和第j jj个点之间有连线。

最后一行:两个整数s sst tt,分别表示源点和目标点。

点的编号为1 ∼ n 1\sim n1n

【输出】

一行,一个实数(保留两位小数),表示从s sst tt的最短路径长度。

【输入样例】

5 0 0 2 0 2 2 0 2 3 1 5 1 2 1 3 1 4 2 5 3 5 1 5

【输出样例】

3.41

【算法标签】

#Floyd#

【代码详解】

#include<bits/stdc++.h>usingnamespacestd;#defineN105// 坐标结构体structCord{intx,y;// 坐标};doubleedge[N][N];// 邻接矩阵,存储边权intn,m;// n: 顶点数, m: 边数intst,te;// st: 起点, te: 终点doubledis[N][N];// dis[i][j]: 顶点i到顶点j的最短距离Cord ver[N];// 保存每个顶点的坐标// 计算两点间欧几里得距离doublegetDis(Cord a,Cord b){returnsqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));}// 初始化函数voidinit(){intf,t;// 边的两个端点cin>>n;// 输入顶点数// 输入每个顶点的坐标for(inti=1;i<=n;++i){cin>>ver[i].x>>ver[i].y;}cin>>m;// 输入边数// 输入每条边for(inti=1;i<=m;++i){cin>>f>>t;// 输入边的两个端点edge[f][t]=edge[t][f]=getDis(ver[f],ver[t]);// 无向图,存储距离}cin>>st>>te;// 输入起点和终点}// Floyd-Warshall算法voidfloyd(){// 初始化距离矩阵memset(dis,0x43,sizeof(dis));// 使用0x43填充,使dis中每个元素的值大约为1.08e16// 初始化直接相连的边for(inti=1;i<=n;++i){for(intj=1;j<=n;++j){if(edge[i][j]>0)// 如果有边{dis[i][j]=edge[i][j];}}}// 对角线置0(自己到自己的距离为0)for(inti=1;i<=n;++i){dis[i][i]=0;}// Floyd算法核心:动态规划for(intk=1;k<=n;++k)// 中间点{for(inti=1;i<=n;++i)// 起点{for(intj=1;j<=n;++j)// 终点{if(dis[i][j]>dis[i][k]+dis[k][j])// 松弛操作{dis[i][j]=dis[i][k]+dis[k][j];}}}}}intmain(){init();// 初始化floyd();// 执行Floyd算法cout<<fixed<<setprecision(2)<<dis[st][te];// 输出结果,保留2位小数return0;// 程序正常结束}

【运行结果】

5 0 0 2 0 2 2 0 2 3 1 5 1 2 1 3 1 4 2 5 3 5 1 5 3.41
http://www.jsqmd.com/news/733645/

相关文章:

  • 为自主智能体构建安全通信堡垒:Signal Bastion设计与实现
  • RVC变声器终极指南:10分钟训练专业级AI音色的完整教程
  • 2026中百超市卡回收平台TOP榜:鼎鼎收专业深耕15年,四项五星实力领跑 - 鼎鼎收礼品卡回收
  • 手把手教你为STM32/GD32项目添加“出厂时间”与“运行时长”统计功能
  • MuJoCo仿真中物体滑动的3个层次解决方案:从基础参数到高级接触模型
  • 大语言模型数据泄露风险与防护方案解析
  • 2026揭阳财税公司怎么选?五家主流机构特色解析 - 小征每日分享
  • 2026年济南婚纱摄影服务能力横向深度测评:5家主流品牌全维度对比与选型指南 - 速递信息
  • 多步时间序列预测:核心策略与实战解析
  • EvoCUA:基于合成经验学习的进化型智能代理技术解析
  • 核岭回归与随机特征映射在音乐信息检索中的应用
  • python ipython
  • 告别条件构造器!MyBatis-Plus的LambdaQueryChainWrapper,一行代码搞定复杂查询
  • 5分钟打造专属微信机器人:WechatBot零基础部署完全指南
  • 量子计算如何加速数字孪生技术发展
  • 终极STL文件缩略图生成工具stl-thumb完整使用指南
  • 终极HS2-HF_Patch完整指南:一键解锁Honey Select 2全功能游戏体验
  • ExifToolGUI:告别命令行,用图形界面轻松管理照片元数据
  • 2026新疆旅拍指南:选对优质服务商,出片率拉满 - 速递信息
  • 破解专精特新小巨人申报痛点:PPMR四阶方法论如何提升申报成功率? - 速递信息
  • 进化算法与合成经验学习在自动化代理中的应用
  • KeyBrain:本地优先AI知识库,构建你的第二大脑
  • PHP 9.0 Fiber + AI Agent框架深度耦合实践(附某跨境SaaS公司通过率提升41%的对话状态机设计图谱)
  • TRC2架构:解决NLP持续学习中的灾难性遗忘问题
  • 首帧视频生成技术:从单图到动态内容的AI实现
  • 生物医学视觉语言模型BMC-LongCLIP:突破长文本限制的医学AI
  • 从代码解释器到云端沙盒:为AI代理构建安全可扩展的执行环境
  • 蜂鸟E203源码深度游:我是如何跟着B站视频和中文博客读懂这个RISC-V CPU的
  • 分享 5 个武汉二手房局部改造装修公司,首选武汉尺子世家 - 速递信息
  • 基于OpenClaw构建AI工作流,如何配置Taotoken作为其模型供应商