51nod 1096 距离之和最小 【思维题】

来源:互联网 发布:海信淘宝旗舰店 编辑:程序博客网 时间:2024/06/06 11:03

这道题原本理解错了 其实是在给定的数中 找到一个点,并且该点到其他点的距离最小

因此这样就简单了
排个序, 找到中间点 然后与其他点的距离加在一起 即可

#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;}
原创粉丝点击