A1046.Shortest Distance
来源:互联网 发布:知乎的产品流程设计图 编辑:程序博客网 时间:2024/06/05 18:40
题目如下:
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.
输入格式:
Each input file contains one test case. For each case, the first line contains an integer N (in [3, 10^5]), 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 (<=10^4), 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 10^7.
[简要翻译:每个输入包含一个测试样例。对于每一个测试样例,第一行包含一个整数N,然后跟着N个距离整数D1 D2 …….DN,Di表示第i个节点和第i+1个节点的距离,以此类推形成循环距离。第一行的每一个数用空格间隔开。第二行给出一个表示测试样例数量的正整数M,之后跟着M行,每行包含两个整数(1~N)用于测试求解。应该要保证总的往返距离不大于10^7]
输出格式:
For each test case, print your results in M lines, each contains the shortest distance between the corresponding given pair of exits.
输入样例:
5 1 2 4 14 9
3
1 3
2 5
4 1
输出样例:
3
10
7
题意:
有N个结点围成一个圈,相邻两个点之间的距离已知,且每次只能移动到相邻结点。然后给出M个询问,每个询问给出两个数字A和B即结点编号(1<=A,B<=N),求从A号结点到B号结点的最短距离。
样例解释:
思路:
注意点:
代码:
#include <iostream> #include <fstream> using namespace std; ifstream fin("in.txt"); #define cin fin int main() { int n; cin>>n; int* dis = new int[n+1]; int d; int i; int sum = 0; for(i=0;i<n;i++) { cin>>d; dis[i+1] = sum; sum = sum + d; } int m; cin>>m; int begin,end; int total; for(i=0;i<m;i++) { cin>>begin>>end; if(begin>end) { total = dis[begin]-dis[end]; }else { total = dis[end]-dis[begin]; } if(sum-total > total) { cout<<total<<endl; }else { cout<<sum-total<<endl; } } system("PAUSE"); return 0; }
- A1046. Shortest Distance (20)
- PAT A1046. Shortest Distance
- A1046.Shortest Distance
- PAT A1046 Shortest Distance (20)
- 【PAT】A1046. Shortest Distance (20)
- PAT A1046. Shortest Distance (20)
- PAT-A1046 Shortest Distance(模拟)
- 3.1简单模拟A1046. Shortest Distance (20)
- PAT A1046 Shortest Distances
- 1046. Shortest Distance
- pat 1046 Shortest Distance
- 1046. Shortest Distance (20)
- 1046. Shortest Distance
- 1046. Shortest Distance (20)
- 1046. Shortest Distance (20)
- 1046. Shortest Distance (20)
- 1046. Shortest Distance (20)
- PAT 1046. Shortest Distance
- classLoader扫盲
- 312. Burst Balloons
- 【小白的CFD之旅】17 需要编程?
- GUI自动化测试入门(一)
- Android8.0广播使用
- A1046.Shortest Distance
- 4.Spark Streaming:实时wordcount程序开发
- python划分数列,生成新的数列,作为value值放入字典
- c++命名规则
- NYOJ B : CTX学长的01串
- PHP 7 连接MySQL,增删改查
- matlab启动
- Git学习-暂存区
- one or more listeners failed to start