zoukankan      html  css  js  c++  java
  • PAT 1046. Shortest Distance

    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, 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.

    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
    

    分析

    这题在读入距离数据时把它按照从1到它的距离储存起来,后面求最小距离时就是min(总距离-dist[i][j],dist[i][j])
    
    #include<iostream>
    #include<math.h>
    using namespace std;
    int dist[100001]={0};
    int main(){
    	int n,dis,s,e,m;
    	cin>>n;
    	for(int i=1;i<=n;i++){
    		cin>>dis;
    		dist[i+1]=dist[i]+dis;
    	}
    	cin>>m;
    	for(int i=0;i<m;i++){
    		cin>>s>>e;
    		int t1,t2;
    		t1=min(s,e);
    		t2=max(s,e);
    		cout<<min(dist[t2]-dist[t1],dist[n+1]-(dist[t2]-dist[t1]))<<endl;
    	}
    	return 0;
    } 
    
  • 相关阅读:
    磁盘挂载自动分区脚本
    docker的私有仓库的搭建
    centos6上安装docker
    docker的本地仓库换成阿里云的镜像仓库
    python中的coding的格式书写形式
    mysql5.6的二进制包安装
    mysql忘记root密码
    Verilog利用$fdisplay命令往文件中写入数据
    Quartus和ISE调用Synplify进行综合的问题
    TMS320C6455 SRIO 实现方案
  • 原文地址:https://www.cnblogs.com/A-Little-Nut/p/8327901.html
Copyright © 2011-2022 走看看