PAT A1016. 最短路径

题意
有N个结点围成一个圈,相邻两个点之间的距离已知,且每次只能移动到相邻点。然后给出M个询问,每个询问给出两个数字A和B即结点编号(1≤A,B≤N),求从A号结点到B号结点的最短距离。
样例解释
如图3-2所示,共有5个结点,分别标号为1、2、3、4、5,相邻两点的距离在图上给出。总共三个询问:
13:从1号点到3号点的最短距离为3,路径为1→2→→3;25:从2号点到5号点的最短距离为10,路径为2→1→5;4 1:从4号点到1号点的最短距离为7,路径为4→3→2→1。
 

输入样例

5 1 2 4 14 9

3
1 3

2 5

4 1


输出样例

3
10

7

 学习收获:

        第一次遇到没什么思路,根本想不到这样做。也算是积累经验吧。

        它的思想是通过记录第1个点到各个点的距离都记录下来,然后需要算哪两个点之间的距离,只要利用它们距离第1个点的距离作差就行。(反应在程序里是,temp = dis[right-1] - dis[left-1]。)

        另外,本程序通过一个方向计算距离,比如顺时针方向。(反应在程序里就是,当left大于right时,交换两者的值。)反方向的距离利用总的距离减去顺时针方向的距离即可得到。(反应在程序里是,sum-temp。然后得出两个方向的最小值min(temp,sum-temp)。)

代码实现:

#include<cstdio>
#include<algorithm>
using namespace std;const int Max = 100005;
int dis[Max],A[Max];int main()
{int sum = 0,n;scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%d",&A[i]);sum += A[i];   //把总长度记下来 dis[i] = sum;  //第1个结点到各个结点的距离,相减就是中间的距离 }int query;int left,right;scanf("%d",&query);for(int i=0;i<query;i++){scanf("%d%d",&left,&right);if(left>right) swap(left,right);  //总是一个方向,如顺时针方向算距离,逆时针方向的用总距离sum-temp就能算出来。 int temp = dis[right-1] - dis[left-1];printf("%d\n",min(temp,sum-temp));}return 0;
} 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/33204.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring Cloud:构建分布式系统的利器

引言 在当今的云计算和微服务架构时代&#xff0c;构建高效、可靠的分布式系统成为软件开发的重要任务。Spring Cloud 提供了一套完整的解决方案&#xff0c;帮助开发者快速构建分布式系统中的一些常见模式&#xff08;例如配置管理、服务发现、断路器等&#xff09;。本文将探…

海南云亿商务咨询有限公司抖音电商服务领军企业

在数字化浪潮席卷全球的今天&#xff0c;电商行业已成为推动经济发展的重要引擎。而抖音&#xff0c;作为短视频领域的佼佼者&#xff0c;其独特的商业模式和庞大的用户群体&#xff0c;为电商行业带来了前所未有的机遇。海南云亿商务咨询有限公司&#xff0c;正是把握这一时代…

《C语言深度解剖》(20):动态内存管理中的易错点和避坑指南

&#x1f921;博客主页&#xff1a;醉竺 &#x1f970;本文专栏&#xff1a;《C语言深度解剖》 &#x1f63b;欢迎关注&#xff1a;感谢大家的点赞评论关注&#xff0c;祝您学有所成&#xff01; ✨✨&#x1f49c;&#x1f49b;想要学习更多C语言深度解剖点击专栏链接查看&…

Mybatis动态sql标签

动态SQL标签简介: MyBatis的一个强大的特性之一通常是它的动态SQL能力。如果你有使用JDBC或其他相似框架的经验,你就明白条件地串联SQL字符串在一起是多么的痛苦,确保不能忘了空格或在列表的最后省略逗号。动态SQL可以彻底处理这种痛苦。 Mybatis中实现动态sql的标签有&#x…

【论文速读】|利用大语言模型实现现实世界代码的翻译:一项针对翻译到Rust语言的研究

本次分享论文&#xff1a;Towards Translating Real-World Code with LLMs: A Study of Translating to Rust 基本信息 原文作者&#xff1a;Hasan Ferit Eniser, Hanliang Zhang, Cristina David, Meng Wang, Maria Christakis, Brandon Paulsen, Joey Dodds, Daniel Kroeni…

Maven之介绍

目录 一、简介 &#xff08;2&#xff09;为什么学习Maven&#xff1f; 二、小结 一、简介 &#xff08;1&#xff09;Maven 是一个 Java 项目管理和构建工具。它可以定义项目结构、项目依赖&#xff0c;并使用统一的方式进行自动化构建&#xff0c;是Java项目不可缺少的工具…

原装GUVCL-T10GD韩国GENICOM光电二极管紫外线传感器原厂代理商

深圳市宏南科技有限公司是韩国GenUV公司的原厂代理商&#xff0c;所售紫外线传感器均来自于原始生产厂商直接供货&#xff0c;非第三方转售。 GUVCL-T10GD 韩国GENICOM光电二极管光传感器 / 低亮度 / 紫外线 UV-C传感器 GUVCL-T10GD 采用基于氮化铟的材料 肖特基型 光电二极管…

Linux线程:基于环形队列RingQueue的生产消费者模型

目录 一、环形队列的概念及定义 二、POSIX信号量 三、RingQueue的实现方式 3.1RingQueue.hpp的构建 3.2Thread.hpp 3.3Main.cc主函数的编写 3.4Task.hpp function包装器的使用 一、环形队列的概念及定义 此处的环形队列并不是一个真正意义上的环&#xff0c;而是通过对容…

微信小程序之横向列表展示

效果图 参考微信小程序可看 代码&#xff1a; <view class"lbtClass"><view class"swiper-container"><scroll-view class"swiper" scroll-x"true" :scroll-left"scrollLeft"><block v-for"(six…

centos7.5 安装mongo客户端

参考&#xff1a; https://doc.hcs.huawei.com/zh-cn/usermanual/dds/dds_faq_0018.html https://www.cnblogs.com/zhaoyingjie/p/17784968.html mongo 和 mongosh 的区别database - Difference in mongo --version and mongosh --version - Stack Overflow mongoDB 5.0 之后…

4.1 四个子空间的正交性

一、四个子空间的正交性 如果两个向量的点积为零&#xff0c;则两个向量正交&#xff1a; v ⋅ w v T w 0 \boldsymbol v\cdot\boldsymbol w\boldsymbol v^T\boldsymbol w0 v⋅wvTw0。本章着眼于正交子空间、正交基和正交矩阵。两个子空间的中的向量&#xff0c;一组基中的向…

Python多语言欧拉法和预测校正器实现

&#x1f4dc;流体力学电磁学运动学动力学化学和电路中欧拉法 &#x1f4dc;流体力学电磁学运动学动力学化学和电路中欧拉法示例&#xff1a;Python重力弹弓流体晃动微分方程模型和交直流电阻电容电路 ✒️多语言实现欧拉法和修正欧拉法 在数学和计算科学中&#xff0c;欧拉…

C# VTK 移动旋转

对vtk 场景中一个或多个选中物体进行移动旋转。 交互移动旋转坐标系 首先我们创建旋转的交互坐标系&#xff0c;三个移动Actor&#xff0c;三个旋转Actor&#xff0c;还需要4个定位坐标的小球Actor。 public class CoordinateActor 中添加Actor// 当前选中的Actorpublic vtkAc…

C语言---数据结构(1)--时间复杂和空间复杂度计算

1.什么是时间复杂度和空间复杂度 1.1算法效率 算法效率分为时间效率和空间效率 时间效率被称为时间复杂度&#xff0c;而空间效率被称作空间复杂度。 时间复杂度主要衡量的是一个算法的运行速度&#xff0c;而空间复杂度主要衡量一个算法所需要的额外空间&#xff0c;在计算…

机器人阻抗控制相关文献学习(阻抗实现)

机器人阻抗是一个描述机器人与环境交互时动态特性的概念。 定义&#xff1a; 阻抗在机器人领域中&#xff0c;通常用来描述机器人与其环境之间的相互作用。当机器人与环境接触时&#xff0c;环境对机器人施加一个作用力&#xff0c;而机器人也会对环境施加一个反作用力。这个反…

PMP与软考的区别? 我该学习哪个?

PMP&#xff08;项目管理专业人士&#xff09;和软考&#xff08;软件工程师考试&#xff09;是两种不同领域的认证考试&#xff0c;分别专注于项目管理和软件工程师领域。下面将对它们做详细介绍。 一、PMP PMP作为项目管理领域的国际认证考试&#xff0c;由美国项目管理协会…

WordPress CDN是什么?CDN有什么作用?

您想让您的网站加载速度更快吗&#xff1f; 网站所有者希望网站加载速度快&#xff0c;内容丰富&#xff0c;功能强大&#xff0c;吸引用户。然而&#xff0c;添加这些功能可能会降低网站速度&#xff0c;难以快速向全球用户提供内容。 这就是为什么许多WordPress网站使用 CDN…

小型数据中心是什么?如何建设?

在数字化时代&#xff0c;小型数据中心正成为许多企业和组织加强数据管理和服务扩展的理想选择。与传统大型数据中心相比&#xff0c;小型数据中心以其灵活性、高效性和相对较低的运营成本吸引着越来越多的关注。然而&#xff0c;要成功建设一个小型数据中心&#xff0c;并确保…

Web网页端IM产品RainbowChat-Web的v7.0版已发布

一、关于RainbowChat-Web RainbowChat-Web是一套Web网页端IM系统&#xff0c;是RainbowChat的姊妹系统&#xff08;RainbowChat是一套基于开源IM聊天框架 MobileIMSDK (Github地址) 的产品级移动端IM系统&#xff09;。 ► 详细介绍&#xff1a;http://www.52im.net/thread-2…