货仓选址中位数证明

Posted rstz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了货仓选址中位数证明相关的知识,希望对你有一定的参考价值。

技术图片

假设货仓左边所有点到仓库的距离是p, 右边是q, 总距离p+q, 由题可知,要让总距离最小,当仓库向左移动 p – x, 而 但是q会增加n?x,所以说当为仓库中位数的时候,p+qp+q最小。还是同样的一句话,画图理解很重要。

  1 #include <iostream>
  2 #include <algorithm>
  3 using namespace std;
  4 const int N = 1e5 + 5;
  5 int a[N];
  6 int main(){
  7     int n;
  8     cin >> n;
  9     for(int i = 1; i <= n; ++ i)
 10         cin >> a[i];
 11 
 12     sort(a+1, a+1+n);
 13     int pos = 0;
 14     if(n&1) pos = a[(n+1)/2];
 15     else pos = a[n/2 + 1];
 16     int ans = 0;
 17     for(int i = 1; i <= n; ++ i)
 18         ans += abs(a[i] - pos);
 19     cout << ans << endl;
 20     return 0;
 21 }

以上是关于货仓选址中位数证明的主要内容,如果未能解决你的问题,请参考以下文章

关于货仓选址问题的方法及证明(在数轴上找一点使得该点到所有其他点的距离之和最小)

货仓选址模型与环形均分纸牌

寒假每日一题货仓选址(个人练习)详细题解+推导证明(第一天)

货仓选址

104. 货仓选址贪心

Lydsy3032 七夕祭(货仓选址+均分纸牌结合)