1 条题解

  • 0
    @ 2025-10-8 16:55:33

    A17 排序 中位数 距离和的最小值

    A17 排序 中位数 距离和的最小值(内网)

    /*
    把A[1]~A[N]排序,设货仓建在X坐标处,X左侧的商店有P家,右侧的商店有Q家。
    若P<Q,则货仓的选址向右移动1单位距离,距离之和就会变小 Q-P。
    若P>Q,则货仓的选址向左移动会使距离之和变小。
    当P=Q时为最优解。
    因此货仓应该建在中位数处,即把A排序后,当N为奇数时,货仓建在A[(N+1)/2]最优
    当N为偶数,则A[N/2]和A[N/2 +1]都行 
    */ 
    #include<bits/stdc++.h>
    using namespace std;
    int a[110000];
    int main()
    {
        int n;scanf("%d",&n);
        for(int i=1;i<=n;i++)scanf("%d",&a[i]);
        sort(a+1,a+n+1);
        int mid=(n+1)/2,sum=0; 
        for(int i=1;i<=n;i++)sum+=abs(a[mid]-a[i]);
        printf("%d\n",sum);
        return 0;
    }
    • 1

    A17*【中位数】数轴上n个点的中心点[货仓选址]

    信息

    ID
    1129
    时间
    1000ms
    内存
    64MiB
    难度
    5
    标签
    递交数
    166
    已通过
    70
    上传者