51nod 1096 距離之和最小 【思維題】

這道題原本理解錯了 其實是在給定的數中 找到一個點,並且該點到其他點的距離最小

因此這樣就簡單了
排個序, 找到中間點 然後與其他點的距離加在一起 即可

#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
int main(){
    long long n,m[10005],sum=0;;
    cin>>n;
    for(int i=0;i<n;i++)    cin>>m[i];
    sort(m,m+n);
    for(int i=0;i<n;i++)    sum+=abs(m[i]-m[n/2]);
    cout<<sum<<endl;
    return 0;
}

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