博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
1046 Shortest Distance
阅读量:5895 次
发布时间:2019-06-19

本文共 695 字,大约阅读时间需要 2 分钟。

题意:给出一个环和结点之间的距离,求任意两结点之间的最近距离。如图:

思路:令数组dis[i]表示1号结点逆时针至i号结点的距离,初始化dis[1]=0,其他值在输入是确定,即

dis[i] 0 1 3 7 21
i 1 2 3 4 5

这样,起点start和终点end之间逆时针方向的距离即为 d=abs(dis[end]-dis[start]) ,注意要加绝对值,不然,比如起点4到终点2的距离是dis[2]-dis[4]=-6,就为负了。同时用total记录环的总距离,起点start和终点end之间逆时针方向的距离即为 total-d 。对于任意两结点u,v之间的最短距离,就是其顺时针和逆时针距离最较小值。

代码:

#include 
#include
#define MIN(x,y) (x)<(y)?(x):(y)const int N=100010;int dis[N]={
0};int main(){ int n,d,total=0;//total表示总的距离 scanf("%d",&n); for(int i=1;i<=n;i++){ scanf("%d",&d); total+=d; dis[i+1]=d+dis[i]; } int m,s,e; scanf("%d",&m); for(int i=0;i

 

转载于:https://www.cnblogs.com/kkmjy/p/9548253.html

你可能感兴趣的文章
PHP盛宴——经常使用函数集锦
查看>>
安装gulp及相关插件
查看>>
如何在Linux用chmod来修改所有子目录中的文件属性?
查看>>
Hyper-V 2016 系列教程30 机房温度远程监控方案
查看>>
笔记:认识.NET平台
查看>>
cocos2d中CCAnimation的使用(cocos2d 1.0以上版本)
查看>>
gitlab 完整部署实例
查看>>
SCCM 2016 配置管理系列(Part8)
查看>>
struts中的xwork源码下载地址
查看>>
我的友情链接
查看>>
PHP 程序员的技术成长规划
查看>>
python基础教程_学习笔记19:标准库:一些最爱——集合、堆和双端队列
查看>>
js replace,正则截取字符串内容
查看>>
javascript继承方式详解
查看>>
lnmp环境搭建
查看>>
自定义session扫描器精确控制session销毁时间--学习笔记
查看>>
仿射变换
查看>>
视频直播点播nginx-rtmp开发手册中文版
查看>>
PHP队列的实现
查看>>
单点登录加验证码例子
查看>>