Acwing 104. 货仓选址 (数学题,绝对值不等式)

这道题目只涉及距离最短,没有考虑配送路径的问题,所以不要想多。最短距离的数学表达式可以写出来,实际上就是求这个距离的最小值。一维问题是曼哈顿距离,求这个最小值用的方法是绝对值不等式,建议先从两个站点入手找思路,然后扩展到三个,四个,最后得出的一般思路是第一个站点和最后一个站点配对,第二个站点和倒数第二个站点配对。。。假如总共有偶数个站点,那么配送站建在中新两个点中间均可以,如果有奇数个站点,那么配送站放在中位数上,这样由绝对值不等式,这样的距离总是最小的。

#include <iostream>
#include <algorithm>
using namespace std;
const int N = 100000+5;
int nums[N];


int main()
{
    int n;
    cin>>n;
    for(int i=0;i<n;i++){
        cin>>nums[i];
    }
    sort(nums,nums+n);
    int res = 0;
    for(int i=0;i<n/2;i++) res+= nums[n-1-i] - nums[i];
    cout<<res<<endl;
}

猜你喜欢

转载自blog.csdn.net/wwxy1995/article/details/112570830
今日推荐