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 ...
随机推荐
- image auto downloader
image auto downloader icons killer / js crawler http only + same-origin OK "use strict"; / ...
- Flutter & release an iOS app
Flutter & release an iOS app https://flutter.dev/docs/deployment/ios .ipa https://en.wikipedia.o ...
- css social media
css social media https://realfavicongenerator.net/ https://css-tricks.com/favicon-quiz/ <!DOCTYPE ...
- fetch & form-data & upload & image file
fetch & form-data & upload & image file no need multipart/form-data https://blog.xinshan ...
- Flutter 模拟youtube快进icon
import 'package:flutter/material.dart'; void main() => runApp(MyApp()); class MyApp extends State ...
- Nodejs 使用 bcrypt 库加密和验证密码
bcrypt install λ cnpm i bcrypt -S λ cnpm install --save @types/bcrypt example import * as bcrypt fro ...
- [转]c++使用thread类时编译出错,对‘pthread_create’未定义的引用
转载地址:https://blog.csdn.net/wuhui20091515/article/details/52531202 例子1 #include <iostream> #inc ...
- Vue学习笔记-vue调试工具vue-devtools安装及使用
一 使用环境: windows 7 64位操作系统 二 vue调试工具vue-devtools安装及使用 1.下载: 百度中查找 "vue-devtools下载" 找到最新 ...
- SpringBoot2.x整合Email并利用AOP做一个项目异常通知功能
因为不知aop能干嘛,因此用aop做个小功能,再结合最近学的springboot-Email做了个系统异常自动邮件通知的功能, 感觉满满的成就感. AOP不懂的可以看上一篇:https://www.c ...
- Pytorch1.7报错 Output 0 of UnbindBackward is a view and is being modified inplace
utils里内容改成 if scale_each is True: for idx, _ in enumerate([jj for jj in tensor]): t = tensor[idx] # ...