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.mfbz.cn/a/726467.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

计算机网络:网络层 - IP数据报的转发

计算机网络&#xff1a;网络层 - IP数据报的转发 基于终点转发最长前缀匹配二叉线索树路由表特殊路由特定主机路由默认路由 IP多播 基于终点转发 路由器转发报文时&#xff0c;是通过报文中的目的地址字段来转发的&#xff0c;也即是说路由器只知道终点的IP地址&#xff0c;根…

哈喽GPT-4o——对GPT-4o 编程的思考与看法

GPT-4o&#xff08;“o”代表“全能”&#xff09;它可以接受任意组合的文本、音频和图像作为输入&#xff0c;并生成任意组合的文本、音频和图像输出。 &#x1f449; GPT功能&#xff1a; GPT-4o知识问答&#xff1a;支持1000token上下文记忆功能最强代码大模型Code Copilo…

用电子表单替代纸质表格,签到报名、出入登记更轻松

用纸质表格收集信息时&#xff0c;常常会出现数据丢失、不易统计等问题。我们可以搭建电子表单来代替线下纸质表格&#xff0c;进行信息收集、记录数据。 这些数据会保存在账号下&#xff0c;可以导出Excel或PDF进行存档&#xff1b;也可以根据企业要求自定义PDF导出格式。 并…

【Stable Diffusion 3】本地部署SD3详细教程

&#x1f44b; Hi, I’m Beast Cheng &#x1f440; I’m interested in photography, hiking, landscape… &#x1f331; I’m currently learning python, javascript, kotlin… &#x1f4eb; How to reach me --> 458290771qq.com 1. Stable Diffusion 3 模型下载 「点…

2024: 有效使用OKR的10个技巧

2023年是许多前所未有的一年。从真正意义上讲&#xff0c;这一年让我们为不可预测的事情做好了准备&#xff0c;也为不确定的事情提供了训练。在我们身边发生了这么多事情&#xff0c;而下一步的行动却依然不甚明朗的情况下&#xff0c;领导者们更应该开始制定战略&#xff0c;…

C# 使用NetAutoGUI.Windows做软件自动化操作

.NET兼职社区 搭建开发环境 包名&#xff1a;NetAutoGUI 和 NetAutoGUI.Windows安装NuGet包&#xff1a; ​ NuGet\Install-Package NetAutoGUI -Version 1.0.9​ NuGet\Install-Package NetAutoGUI.Windows -Version 1.0.9如果安装失败则需要设置目标框架为windows 在本指…

大模型日报|4 篇必读的大模型论文

大家好&#xff0c;今日必读的大模型论文来啦&#xff01; 1.ChatGLM 技术报告&#xff1a;从 GLM-130B 到 GLM-4 AII Tools GLM 技术团队介绍了 ChatGLM&#xff0c;这是一个不断发展的大语言模型系列。本报告主要关注 GLM-4 语言系列&#xff0c;包括 GLM-4、GLM-4-Air 和 …

【中霖教育怎么样】二建审核是考前审核还是考后审核?

在二级建造师的报名过程中&#xff0c;考生需经过严格的资格审核&#xff0c;有些地区分为考前审核&#xff0c;该审核分为考前和考后两个阶段。 考前审核&#xff1a; 在考试前&#xff0c;对每位考生的报名条件进行审查&#xff0c;只有符合规定条件的申请者才可参加二级建…

2004年下半年软件设计师【下午题】试题及答案

文章目录 2004年下半年软件设计师下午题--试题2004年下半年软件设计师下午题--答案2004年下半年软件设计师下午题–试题

Flutter TIM 项目配置

目录 1. 设计说明 2. 参考资料索引 Flutter SDK 服务端 Rest API 腾讯后台 其他 3. TIM 整体架构 第一部分&#xff1a;APP 端 第二部分&#xff1a;腾讯服务器 第三部分&#xff1a;三方服务 第四部分&#xff1a;你自己的服务器 4. TIM SDK 集成 TUIK 含 UI 集成…

Windows清理C盘的4类方法【新手小白专用】

一、系统清理法 1.磁盘清理 【Win R】启动命令提示符&#xff0c;输入【cleanmgr】,选择打开C盘&#xff0c;勾选要清理的文件 一般大的文件是【临时文件和下载的程序文件】 2.存储清理&#xff08;1&#xff09; 打开【设置】-【系统】-【存储】-【配置存储感知或立即运行…

第11章 测试代码

第11章 测试代码 11.1 测试函数11.1.1 单元测试和测试用例11.1.2 可通过的测试11.1.3 未通过的测试11.1.4 测试未通过时怎么办11.1.5 添加新测试 11.2 测试类11.2.1 各种断言方法11.2.2 一个要测试的类11.2.3 测试 AnonymousSurvey 类11.2.4 11.1 测试函数 11.1.1 单元测试和测…

34、shell数组+正则表达式

0、课前补充 jiafa () { result$(echo " $1 $2 " | bc ) print "%.2f\n" "$result" } ##保留小数点两位 薄弱加强点 a$(df -h | awk NR>1 {print $5} | tr -d %) echo "$a"一、数组 1.1、定义 数组的定义&am…

朝阳医院2018年销售数据 数据分析与可视化

代码及数据集下载传送门 数据分析与可视化-朝阳医院2018销售数据-ipynbcsv 实践内容 以朝阳医院2018年销售数据为例&#xff0c;目的是了解朝阳医院在2018年里的销售情况&#xff0c;这就需要知道几个业务指标&#xff0c;本次的分析目标是从销售数据中分析出以下业务指标&am…

避雷!紧急停止投稿,毕业神刊Aging危险了,被数据库“On Hold“!

本周投稿推荐 SSCI • 中科院2区&#xff0c;6.0-7.0&#xff08;录用友好&#xff09; EI • 各领域沾边均可&#xff08;2天录用&#xff09; CNKI • 7天录用-检索&#xff08;急录友好&#xff09; SCI&EI • 4区生物医学类&#xff0c;0.5-1.0&#xff08;录用…

2004年上半年软件设计师【下午题】试题及答案

文章目录 2004年上半年软件设计师下午题--试题2004年上半年软件设计师下午题--答案2004年上半年软件设计师下午题–试题

部署RAC到单实例ADG(11G)

服务器信息 主库RAC环境信息 主库RAC基本环境 节点1 节点2 OS centos 7.9 centos 7.9 数据库版本 11.2.0.4 11.2.0.4 规格 1C4G 1C4G 主机名 racdb01 racdb02 public ip 192.168.40.135 192.168.40.145 vip 192.168.40.13 192.168.40.14 private ip 192…

netcore 生成验证码

安装依赖 Install-Package Lazy.Captcha.Core 注册服务 builder.Services.AddCaptcha(); 自定义注册服务 // 注册服务的时候增加配置 services.AddCaptcha(Configuration, option > {option.CaptchaType CaptchaType.WORD; // 验证码类型option.CodeLength 6; // 验证…

广州化工厂可燃气体报警器检定检验:安全生产新举措显成效

随着科技的不断发展&#xff0c;可燃气体报警器的检定检验技术也在不断进步。 广州的一些化工厂开始采用先进的智能检测系统和数据分析技术&#xff0c;对报警器的性能进行更加精准和全面的评估。 这些新技术不仅能够提高检定检验的效率和准确性&#xff0c;还能够为化工厂的…

Python测试框架--Allure

严格意义上讲 Allure 不算是测试框架&#xff0c;但是它是生成漂亮测试报告的开源工具&#xff0c;搭配 Pytest 测试框架食用更搭。 也就是说 Allure 是在 Pytest 执行完生成的测试数据的基础上&#xff0c;对测试数据进行处理统计&#xff0c;生成格式统一、美观的测试报告。 …