1046. Shortest Distance (20)
来源:互联网 发布:北京一元洗车软件 编辑:程序博客网 时间:2024/06/18 18:15
题目链接:https://www.patest.cn/contests/pat-a-practise/1046
题目大意:一个圈上有n个点,相邻点之间的距离已知,求任意两点之间的最短距离。其实就是圈上两个点之间的顺时针距离和逆时针距离的最小者。
解题思路:
- 见代码注释
解题报告:
#include <iostream>#include <cstdio>using namespace std;int min(int a,int b){ return a<b?a:b;}int max(int a,int b){ return a>b?a:b;}int main(int argc, char const *argv[]){ int n,m,all=0;//all所有边总长度 scanf("%d",&n); //e[i]第i条边的长度,sum[i]为第i个点到第一个点的距离, int e[n],sum[n+1]; //第一个点离第一个点的距离为0 sum[0]=0; //输入边的信息,并计算sum[]数组 for(int i=0;i<n;i++){ scanf("%d",&e[i]); all+=e[i]; if(i==0) sum[i+1]=e[i]; else sum[i+1]=sum[i]+e[i]; } scanf("%d",&m); int a,b; for(int i=0;i<m;i++){ int lsum=0; scanf("%d%d",&a,&b); int l=min(a,b),r=max(a,b); //计算顺时针距离 lsum=sum[r-1]-sum[l-1]; printf("%d\n",min(lsum,all-lsum)); } return 0;}
阅读全文
0 0
- 1046. Shortest Distance (20)
- 1046. Shortest Distance (20)
- 1046. Shortest Distance (20)
- 1046. Shortest Distance (20)
- 1046. Shortest Distance (20)
- 1046. Shortest Distance (20)
- 1046. Shortest Distance (20)
- 1046. Shortest Distance (20)
- 1046. Shortest Distance (20)
- 1046. Shortest Distance (20)
- 1046. Shortest Distance (20)
- 1046. Shortest Distance (20)
- 1046. Shortest Distance (20)
- 1046. Shortest Distance (20)
- 1046. Shortest Distance (20)
- 1046. Shortest Distance (20)
- 1046. Shortest Distance (20)
- 1046. Shortest Distance (20)
- 如何让{dede:channel}有子栏目显示子栏目,无子栏目不显示同级栏目
- ARM裸机开发之基于S3C2451的电子相册开发
- python 中filter()函数
- 如何查看进程的信息(线程数)
- 自定义一个布局实现标签流
- 1046. Shortest Distance (20)
- Python使用requests提交HTTP表单
- python学习
- git使用详解
- Maven[一]:assembly插件
- feign 调用报错sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certifica
- docker学习(2)--docker镜像、容器、仓库和docker的安装
- keil MDK中如何生成*.bin格式的文件
- CSS position详解