51nod 1096 距离之和最小中位数

Posted Roni

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了51nod 1096 距离之和最小中位数相关的知识,希望对你有一定的参考价值。

基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题
技术分享 收藏
技术分享 关注
X轴上有N个点,求X轴上一点使它到这N个点的距离之和最小,输出这个最小的距离之和。
 
Input
第1行:点的数量N。(2 <= N <= 10000)
第2 - N + 1行:点的位置。(-10^9 <= P[i] <= 10^9)
Output
输出最小距离之和
Input示例
5
-1
-3
0
7
9
Output示例
20
【分析】:注意LL,距离abs
【代码】:
技术分享
#include <bits/stdc++.h>
using namespace std;
#define LL long long
int main()
{
    LL n,ans=0;
    LL a[10000+10];
    cin>>n;
    for(int i=0;i<n;i++)
    {
        cin>>a[i];
    }
    sort(a,a+n);
    for(int i=0;i<n;i++)
    {
        ans+=abs(a[i]-a[n/2]);
    }
    cout<<ans<<endl;
    return 0;
}
View Code

 

以上是关于51nod 1096 距离之和最小中位数的主要内容,如果未能解决你的问题,请参考以下文章

51nod 1096 距离之和最小 1108 距离之和最小 V2

51NOD1096 距离之和最小

中位数总结

51Nod 1110 距离之和最小 V3 中位数 思维

51Nod 1110 距离之和最小 V3

51nod1110 距离之和最小 V3