zoukankan      html  css  js  c++  java
  • A1046

    n个节点围成一个环,每个节点之间的距离已知。输入n并给出n个节点的距离,输入m组节点编号(两个),求这两个节点编号间的最短距离。

    1 建立dis[]数组,记录V1点到每一个点的顺时针距离,sum计算环的总距离。

    2 输入m组节点编号,如果左边的值大于右边的值,则使用swap()函数将其交换。

    3 计算temp=dis[right-1]-dis[left-1],比较temp和sum-temp,输出最小的即为最短距离。

    注1:swap()函数即将两个变量交换:swap(a,b);

    注2:#include<algorithm>:包含swao()和min()两个函数的函数库,当要使用这两个函数的时候需要写在开头。

     1 #include<cstdio>
     2 #include<algorithm>
     3 using namespace std;
     4 const int MAXN=100005;
     5 int dis[MAXN];
     6 int main(){
     7     int sum=0,tem,query,n,left, right;
     8     scanf("%d",&n);
     9     for(int i=1;i<=n;i++){
    10         scanf("%d",&tem);
    11         sum+=tem;
    12         dis[i]=sum;
    13     }
    14     scanf("%d",&query);
    15     for(int i=0;i<query;i++){
    16         scanf("%d%d",&left,&right);
    17         if(left>right) swap(left,right);//交换left和right
    18         int temp=dis[right-1]-dis[left-1];
    19         printf("%d
    ", min(temp,sum-temp)); 
    20     }
    21     
    22         return 0;
    23 } 

    ------------恢复内容结束------------

  • 相关阅读:
    (二)数据源处理2-xlrd操作excel
    (二)数据源处理1-configparser读取.ini配置文件
    数据源处理概述(二)
    接口自动化框架概述(一)
    git文件操作
    git分支管理
    git标签管理
    Monkey
    adb命令大全
    Springboot使用AOP实现统一处理Web请求日志
  • 原文地址:https://www.cnblogs.com/Lynn-2019/p/12073223.html
Copyright © 2011-2022 走看看