在一条数轴上有N头牛在不同的位置上,每头牛都计算到其它各头牛的距离。求这n*(n-1)个距离的总和。1<= N <= 10000。每头牛所在位置是一个范围在0到1,000,000,000之内的整数。

/***********************************************************************\

此题坑在取值上,10000个数,超过了二次循环的范围,但这里的二次循环是指从一开始的循环,所以思路如下

输入数组之后,对数组进行排序

例:

1 2 3 6 9

1:1-1 2-1 3-1 6-1 9-1

2:2-1 2-2 3-2 6-2 9-2

3:3-1 3-2 3-3 6-3 9-3

6:6-1 6-2 6-3 6-6 9-6

9:9-1 9-2 9-3 9-6 9-9

注意,排过序后,再次计算距离就会有0之后的数(即红字之后的数)这些数在下面一定有对应的数,这些数无需再次计算,乘二即可。

所以二次循环可用

代码实现如下:


#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
long long m,n,p,q,a[26666],sum=0;
cin>>m;
for(int i=1;i<=m;i++)
{
cin>>a[i];
}
sort(a+1,a+m+1);
for(int i=1;i<=m;i++)
{
for(int j=i;j<=m;j++)
{
p=a[i]-a[j];
p=p*-1;
sum=sum+p;
}
}
cout<<sum*2<<endl;
}
return 0;
}

大牛的距离(笑cry)精简算法的更多相关文章

  1. 三维网格精简算法(Quadric Error Metrics)附源码

    在计算机图形应用中,为了尽可能真实呈现虚拟物体,往往需要高精度的三维模型.然而,模型的复杂性直接关系到它的计算成本,因此高精度的模型在几何运算时并不是必须的,取而代之的是一个相对简化的三维模型,那么如 ...

  2. 三维网格精简算法(Quadric Error Metrics)附源码(转载)

    转载:  https://www.cnblogs.com/shushen/p/5311828.html 在计算机图形应用中,为了尽可能真实呈现虚拟物体,往往需要高精度的三维模型.然而,模型的复杂性直接 ...

  3. 6.26实力测试(小错笑cry)

    6.26测试 本次考试的粗心不忍吐槽(自带贴吧喷水表情),本次考试主要考察的知识点如下: 算法的分析与精简 暴力枚举输出字符 判断与枚举的综合考察 题目 第一题 [问题描述] 在一口井里,有一只神牛( ...

  4. LBS地理位置距离计算方法之geohash算法

    随着移动终端的普及,很多应用都基于LBS功能,附近的某某(餐馆.银行.妹纸等等).基础数据中,一般保存了目标位置的经纬度:利用用户提供的经纬度,进行对比,从而获得是否在附近.这里需要在设置出一个字段, ...

  5. OpenCV——距离变换与分水岭算法的(图像分割)

    C++: void distanceTransform(InputArray src, OutputArray dst, int distanceType, int maskSize) 参数详解: I ...

  6. 还原是不可能还原的,这辈子都不可能还原(手动笑cry)

    不好意思,我又把原厂避震换回border的绞牙了. 这套台湾绞牙已经陪伴了我第三个年头了,本次主要是调节了桶身高度,让车身升高了一下,现在是前面3指松将近4指.后面2指(以前是前面2指半.后面1指松2 ...

  7. <转>从K近邻算法、距离度量谈到KD树、SIFT+BBF算法

    转自 http://blog.csdn.net/likika2012/article/details/39619687 前两日,在微博上说:“到今天为止,我至少亏欠了3篇文章待写:1.KD树:2.神经 ...

  8. iOS:使用莱文斯坦距离算法计算两串字符串的相似度

    Levenshtein:莱文斯坦距离 Levenshtein的经典算法,参考http://en.wikipedia.org/wiki/Levenshtein_distance的伪代码实现的,同时参考了 ...

  9. Floyd-Warshall算法详解(转)

    Floyd-Warshall算法,简称Floyd算法,用于求解任意两点间的最短距离,时间复杂度为O(n^3).我们平时所见的Floyd算法的一般形式如下: void Floyd(){ int i,j, ...

随机推荐

  1. 构建缓存gradle

    结合Kotlin使用Gradle build cache 宛丘之上兮 关注 2018.03.11 00:21* 字数 1177 阅读 505评论 5喜欢 4 在2017年4月,Gradle发布了bui ...

  2. linux系统上项目部署

    步骤:(特别注意:虚拟机安装的一般是32位的操作系统,jdk也必须使用32位的)查看虚拟机版本:sudo uname --m i686 //表示是32位 x86_64 // 表示是64位 查看是否已经 ...

  3. 判断元素16种方法expected_conditions

    前言 标签(空格分隔): 判断元素 经常有小伙伴问,如何判断一个元素是否存在,如何判断alert弹窗出来了,如何判断动态的元素等等一系列的判断,在selenium的expected_condition ...

  4. linux下mysql升级

    最近漏洞扫描,扫描出了数据库存在中高危漏洞,于是迫切需要进行数据库升级.上网查了各种资料,说法很多,也到自己虚拟机上试了好多方法,终于倒腾出来,做下小总结记录一下. 升级操作: 1.到mysql官网h ...

  5. 九 configparser模块

    配置文件如下: # 注释1 ; 注释2 [section1] k1 = v1 k2:v2 user=egon age=18 is_admin=true salary=31 [section2] k1 ...

  6. openstack(Pike 版)集群部署(五)--- Neutron 部署

    一.介绍 参照官网部署:https://docs.openstack.org/neutron/pike/install/install-rdo.html    继续上一博客进行部署:http://ww ...

  7. 让Ubuntu可以压缩/解压缩RAR文件

    ubuntu刚安装的时候是不能解压rar文件的,只有在安装了解压工具之后,才可以解压. 安装:sudo apt-get install unrar卸载:sudo apt-get remove unra ...

  8. HDU_1024.MaxSumPlusPlus(基础DP + 滚动数组优化讲解)

    这道题打破了我常规的做题思路,因为这是我刚开始训练DP,感觉这道题目好晕眼呀,emm其实就是感觉自己是真的菜...... 为什么说打破了我的做题思路呢,因为我平时看题解都是在已经AC或者完全不懂的情况 ...

  9. 6. ZigZag Conversion (字符串的连接)

    The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows like ...

  10. ASCII码翻译方法可直接使用谷歌

    ASCII码翻译方法可直接使用谷歌. 如: key{you are right} 将此段ASCII码输入谷歌搜索栏,直接翻译结果: