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;
}

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章