PAT (Advanced Level) Practice 1046 Shortest Distance (20 分) 凌宸1642
PAT (Advanced Level) Practice 1046 Shortest Distance (20 分) 凌宸1642
题目描述:
The task is really simple: given N exits on a highway which forms a simple cycle, you are supposed to tell the shortest distance between any pair of exits.
译:你的任务很简单:给定 N 个出口,形成一个简单的圆形公路,你应该说出任意一对出口之间的最短距离。
Input Specification (输入说明):
Each input file contains one test case. For each case, the first line contains an integer N (in [3,105]), followed by N integer distances D1 D2 ⋯ DN, where Di is the distance between the i-th and the ( i +1 )-st exits, and DN is between the N-th and the 1st exits. All the numbers in a line are separated by a space. The second line gives a positive integer M (≤104), with M lines follow, each contains a pair of exit numbers, provided that the exits are numbered from 1 to N. It is guaranteed that the total round trip distance is no more than 107.
译:每个输入文件包含一个测试用例,每个用例在第一行中包含一个正整数 N ( 3 ≤ N ≤10 5 ) , 紧跟着 N 个表示距离的整数 D1 D2 ⋯ DN , Di 表示 第 i 个 出口到第 i + 1 个出口之间的距离, DN 表示第 N 个出口到第 1 个出口之间的距离。所有的数字被一个空格分隔。第二行给出一个正整数 M (≤104) , 接下来 M 行,每行包含一对出口的编号,保证出口在 1 ,N之间。题目保证整个环道的距离不超过 107。
Output Specification (输出说明):
For each test case, print your results in M lines, each contains the shortest distance between the corresponding given pair of exits.
译:对于每个测试用例,在 M 行中打印相应那对出口之间的最短距离 。
Sample Input (样例输入):
5 1 2 4 14 9
3
1 3
2 5
4 1
Sample Output (样例输出):
3
10
7
The Idea:
本题的最短距离还算简单。我们只需要一个 数组存储 第 1 个出口 到 第 i 个出口之间的距离。然后求两个出口之间的距离,就变成了简单的减法问题,由于是一个环道,最短距离需要考虑在两个距离之间抉择:a 到 b 的距离 和整个环道的距离 减去 a 到 b 的距离 。
The Codes:
#include<bits/stdc++.h>
using namespace std ;
#define MAX 100010
int sum[MAX] = { 0 } ;
int n , m , t , a , b ;
int main(){
scanf("%d" , &n) ;
for(int i = 1 ; i <= n ; i ++){
scanf("%d" , &t) ;
sum[i] = sum[i-1] + t ; // 计算 第 1 个出口 到 第 i 个出口之间的距离。
}
scanf("%d" , &m) ;
while(m --){
scanf("%d%d" , &a , &b) ;
if(a > b) swap(a , b) ; // 如果 a 大于 b 就交换一下
cout<<min(sum[b - 1] - sum[a - 1] , sum[n] - (sum[b - 1] - sum[a - 1]))<<endl ;
}
return 0;
}
PAT (Advanced Level) Practice 1046 Shortest Distance (20 分) 凌宸1642的更多相关文章
- PAT (Advanced Level) Practice 1042 Shuffling Machine (20 分) 凌宸1642
PAT (Advanced Level) Practice 1042 Shuffling Machine (20 分) 凌宸1642 题目描述: Shuffling is a procedure us ...
- PAT (Advanced Level) Practice 1041 Be Unique (20 分) 凌宸1642
PAT (Advanced Level) Practice 1041 Be Unique (20 分) 凌宸1642 题目描述: Being unique is so important to peo ...
- PAT (Advanced Level) Practice 1015 Reversible Primes (20 分) 凌宸1642
PAT (Advanced Level) Practice 1015 Reversible Primes (20 分) 凌宸1642 题目描述: A reversible prime in any n ...
- PAT (Advanced Level) Practice 1152 Google Recruitment (20 分)
In July 2004, Google posted on a giant billboard along Highway 101 in Silicon Valley (shown in the p ...
- PAT (Advanced Level) Practice 1120 Friend Numbers (20 分) (set)
Two integers are called "friend numbers" if they share the same sum of their digits, and t ...
- PAT (Advanced Level) Practice 1015 Reversible Primes (20 分)
A reversible prime in any number system is a prime whose "reverse" in that number system i ...
- PAT (Advanced Level) Practice 1035 Password (20 分) 凌宸1642
PAT (Advanced Level) Practice 1035 Password (20 分) 凌宸1642 题目描述: To prepare for PAT, the judge someti ...
- PAT (Advanced Level) Practice 1031 Hello World for U (20 分) 凌宸1642
PAT (Advanced Level) Practice 1031 Hello World for U (20 分) 凌宸1642 题目描述: Given any string of N (≥5) ...
- PAT (Advanced Level) Practice 1027 Colors in Mars (20 分) 凌宸1642
PAT (Advanced Level) Practice 1027 Colors in Mars (20 分) 凌宸1642 题目描述: People in Mars represent the c ...
随机推荐
- Linux bash shell All In One
Linux bash shell All In One Linux https://tinylab.gitbooks.io/shellbook/content/zh/chapters/01-chapt ...
- DRM & 音视频 & 防盗链
DRM & 音视频 & 防盗链 DRM Digital Rights Management / 数字版权管理 https://en.wikipedia.org/wiki/Digital ...
- Express vs Koa
Express vs Koa https://www.esparkinfo.com/express-vs-koa.html https://www.cleveroad.com/blog/the-bes ...
- website & blogs & about me & contact
website & blogs & about me & contact demos https://davidwalsh.name/about-david-walsh htt ...
- windows10 WSL
搭建WSL linux下的home目录,映射windows的目录地址 用户家目录 ➜ ~ pwd /home/ajanuw C:\Users\ajanuw\AppData\Local\Packages ...
- NGK公链生态所如何保障用户的数字资产隐私安全?
距离NGK生态所正式上线已经没剩下几天时间了,NGK全网算力总量正在持续猛增,NGK日活账户也在大幅度增多.可以看出,币圈的生态建设者们是十分看好NGK生态所的.那么,有这么多的生态建设者涌入NGK生 ...
- 为什么10月上线的NGK Global即将燎原资本市场
近日据社区透露,NGK Global将在10月全面启动,数据公开透明,人人可以参与运营监管. 现在,区块链经济已经处于爆发前夜.金融行业的探索领先一筹,而其他行业的应用正在快速展开.区块链行业应用头部 ...
- NGK DeFi Baccarat或将推动BGV成为下一个千倍币!
目前,已经接近2020年年末,但是DeFi的热潮还在持续.近日,DeFi市场传出一道重磅利好消息,便是NGK DeFi去中心化交易系统Baccarat即将上线.届时,将会引起整个区块链市场的又一次震动 ...
- 3. Vue语法--计算属性
一. 计算属性 1. 什么是计算属性? 通常, 我们是在模板中, 通过插值语法显示data的内容, 但有时候我们可能需要在{{}}里添加一些计算, 然后在展示出来数据. 这时我们可以使用到计算属性 先 ...
- Dyno-queues 分布式延迟队列 之 生产消费
Dyno-queues 分布式延迟队列 之 生产消费 目录 Dyno-queues 分布式延迟队列 之 生产消费 0x00 摘要 0x01 前情回顾 1.1 设计目标 1.2 选型思路 0x02 产生 ...