信息学奥赛一本通 1342:【例4-1】最短路径问题

server/2025/2/1 13:59:28/

【题目描述】

平面上有n个点(n<=100),每个点的坐标均在-10000~10000之间。其中的一些点之间有连线。

若有连线,则表示可从一个点到达另一个点,即两点间有通路,通路的距离为两点间的直线距离。现在的任务是找出从一点到另一点之间的最短路径。

【输入】

共n+m+3行,其中:

第一行为整数n。

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

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

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

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

【输出】

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

【输入样例】

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

这道题需注意求两点间距离的公式

即sqrt((x[u]-x[v])*(x[u]-x[v])+(y[u]-y[v])*(y[u]-y[v]));

AC代码

#include <bits/stdc++.h>
using namespace std;
int x[105];
int y[105];
double a[105][105];//注意要初始化为double型 
int n,m,s,t;
int main()
{cin>>n;for(int i=1;i<=n;i++){cin>>x[i]>>y[i];}cin>>m;for(int i=1;i<=n;i++)//该循环给数组赋初值 {for(int j=1;j<=n;j++){if(i==j){a[i][j]=0;//a[1][1],a[n][n]初值为0 }else{a[i][j]=999999999;//其余初值为999999999 }}}for(int i=1;i<=m;i++){int u,v;cin>>u>>v;a[u][v]=a[v][u]=sqrt((x[u]-x[v])*(x[u]-x[v])+(y[u]-y[v])*(y[u]-y[v]));//sqrt((x[u]-x[v])*(x[u]-x[v])+(y[u]-y[v])*(y[u]-y[v]))为这道题专用的赋值公式,与信息学奥赛一本通 1374:铲雪车(snow)的赋值专用公式d+=sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1))相似 }for(int k=1;k<=n;k++){for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){a[i][j]=min(a[i][j],a[i][k]+a[k][j]); }}}cin>>s>>t;cout<<fixed<<setprecision(2)<<a[s][t];return 0;
}


http://www.ppmy.cn/server/164085.html

相关文章

【硬件测试】基于FPGA的QPSK+帧同步系统开发与硬件片内测试,包含高斯信道,误码统计,可设置SNR

目录 1.算法仿真效果 2.算法涉及理论知识概要 2.1QPSK 2.2 帧同步 3.Verilog核心程序 4.开发板使用说明和如何移植不同的开发板 5.完整算法代码文件获得 1.算法仿真效果 本文是之前写的文章 《基于FPGA的QPSK帧同步系统verilog开发,包含testbench,高斯信道,误码统计,可…

【网络】3.HTTP(讲解HTTP协议和写HTTP服务)

目录 1 认识URL1.1 URI的格式 2 HTTP协议2.1 请求报文2.2 响应报文 3 模拟HTTP3.1 Socket.hpp3.2 HttpServer.hpp3.2.1 start()3.2.2 ThreadRun()3.2.3 HandlerHttp&#xff08;&#xff09; 总结 1 认识URL 什么是URI&#xff1f; URI 是 Uniform Resource Identifier的缩写&…

蓝桥与力扣刷题(160 相交链表)

题目&#xff1a;给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点&#xff0c;返回 null 。 图示两个链表在节点 c1 开始相交&#xff1a; ​编辑 题目数据 保证 整个链式结构中不存在环。 注意&a…

从零开始学习安时积分法(STM32实现程序)

在STM32微控制器上实现安时积分法&#xff08;Coulomb Counting&#xff09;来估算电池的SOC&#xff08;State of Charge&#xff09;&#xff0c;需要完成以下几个步骤&#xff1a; 硬件配置&#xff1a; 使用STM32的ADC模块测量电池的电流。使用定时器模块进行时间积分。配置…

04树 + 堆 + 优先队列 + 图(D1_树(D1_基本介绍))

目录 一、什么是树&#xff1f; 二、相关术语 根结点 边 叶子结点 兄弟结点 祖先结点 结点的大小 树的层 结点的深度 结点的高度 树的高度 斜树 一、什么是树&#xff1f; 树是一种类似于链表的数据结构&#xff0c;不过链表的结点是以线性方式简单地指向其后继结…

Java小白入门教程:类?方法?变量?

目录 一、类 二、方法 三、变量 四、示例 一、类 类就像是造东西的蓝图或者模具。 在Java中&#xff0c;类定义了对象的结构和行为。 你可以把类想象成一个工厂的生产线&#xff0c;它决定了最终生产的产品&#xff08;对象&#xff09;是什么样子的。 public class 类名…

国产之光DeepSeek架构理解与应用分析

目录 初步探索DeepSeek的设计 一、核心架构设计 二、核心原理与优化 三、关键创新点 四、典型应用场景 五、与同类模型的对比优势 六、未来演进方向 从投入行业生产的角度看 一、DeepSeek的核心功能扩展 二、机械电子工程产业中的具体案例 1. 预测性维护&#xff08;Predictive…

1.文件 标准IO库

1.文件 标准IO库 **1. 标准I/O库概述****2. 文件的概念与类型****3. 标准I/O库的函数分类****4. 缓冲机制****5. 文件操作步骤****6. 文件定位****7. 常见函数详解****8. 练习与作业****9. 其他注意事项****10. 总结** 1. 标准I/O库概述 标准I/O库&#xff1a;由Dennis Ritchi…