欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

货仓选址

程序员文章站 2022-07-16 09:35:53
...

货仓选址货仓选址
这道题货仓的位置就是中位数这样才能保证距离之和最小
这道题虽然不难但是这里面推导的一个公式很重要!

i=1nAipos\sum_{i=1}^{n}|A_i - pos|
要使这个式子值最小,pospos就得是序列的中位数
还会有题会得出这个式子


代码:

#include <iostream>
#include <vector>
using namespace std;
int main() {
    int n;
    cin >> n;
    vector<int> a(n);
    for (int i = 0; i < n; i++) {
        cin >> a[i];
    }
    int pos = a[n / 2];
    int sum = 0;
    for (int i = 0; i < n; i++) {
        sum += abs(a[i] - pos);
    }
    cout << sum << endl;

    return 0;
}

相关标签: 算法刷题 算法