1046. Shortest Distance (20)【贪心】——PAT (Advanced Level) Practise
2015-12-06 21:15
357 查看
题目信息
1046. Shortest Distance (20)时间限制100 ms
内存限制65536 kB
代码长度限制16000 B
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.
Input Specification:
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.
Output Specification:
For each test case, print your results in M lines, each contains the shortest distance between the corresponding given pair of exits.
Sample Input:
5 1 2 4 14 9
3
1 3
2 5
4 1
Sample Output:
3
10
7
解题思路
从前往后和从后往前(过最后一个再过第一个)取最小AC代码
#include <cstdio> #include <algorithm> using namespace std; long long a[100005]; int main() { int n, m, x, y; scanf("%d", &n); for (int i = 1; i <= n; ++i){ scanf("%lld", a + i); a[i] += a[i-1]; } scanf("%d", &m); while (m--){ scanf("%d%d", &x, &y); if (y < x) { swap(x, y); } printf("%d\n", min(a[y-1] - a[x-1], a[x-1] + a - a[y-1])); } return 0; }
相关文章推荐
- libdvbpsi源码分析(四)PAT表解析/重建
- PAT配置
- 什么是端口复用动态地址转换(PAT) 介绍配置实例
- MikroTik layer7-protocol
- PAT是如何工作的
- 1.一些 贪心算法 的简单思维题:
- PAT 乙级题:1002. 写出这个数 (20)
- 贪心算法——字典序最小问题
- 贪心算法——区间调度问题
- PAT (Advanced Level) Practise 1001-1010
- 数据结构学习与实验指导(一)
- Jump Game I,II 贪心
- Wildcard Matching
- PAT Basic Level 1001-1010解题报告
- 贪心法实现无向图的划分 代码
- 贪心题目循环和控制台折行
- 1001. 害死人不偿命的(3n+1)猜想
- 1002. 写出这个数
- 1032. 挖掘机技术哪家强
- 1001. 害死人不偿命的(3n+1)猜想 (PAT basic)