货仓选址【中位数】证明

假设货仓左边所有点到仓库的距离是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 }

原文地址:https://www.cnblogs.com/rstz/p/12696050.html

时间: 2024-10-02 22:51:29

货仓选址【中位数】证明的相关文章

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

目录 货仓选址模型 环形均分纸牌 货仓选址模型 可以如此描述:轴上有k个点,从轴上选择一点,使得此点到其他点的距离之和最小. 固定解:取k个点坐标的中位数 原因:取一点,异色于原先k个点,设此点正方向有p个与此点异色的点,负方向则有q个. 若将点向正方向移动,则距离之和减少p,增加q,反之减少q,增加p:当p.q不等时, 此点所在地必定不是最优解,按照更优方案改动此点的位置,直到p=q,最优解形成. 环形均分纸牌 经典均分纸牌的公式:\(sum(a[1],a[m])\). 环形均分纸牌的公式:\

:七夕祭 (货仓选址+均分纸牌)

问题 : 七夕祭 时间限制: 1 Sec  内存限制: 128 MB 题目描述 七夕节因牛郎织女的传说而被扣上了「情人节」的帽子.于是TYVJ今年举办了一次线下七夕祭.Vani同学今年成功邀请到了cl同学陪他来共度七夕,于是他们决定去TYVJ七夕祭游玩. TYVJ七夕祭和11区的夏祭的形式很像.矩形的祭典会场由N排M列共计N×M个摊点组成.虽然摊点种类繁多,不过cl只对其中的一部分摊点感兴趣,比如章鱼烧.苹果糖.棉花糖.射的屋--什么的.Vani预先联系了七夕祭的负责人zhq,希望能够通过恰当地

yzoj1657货仓选址 题解

题面: 在一条数轴上有N家商店,它们的坐标分别为 A[1]~A[N].现在需要在数轴上建立一家货仓,每天清晨,从货仓到每家商店都要运送一车商品.为了提高效率,求把货仓建在何处,可以使得货仓到每家商店的距离之和最小. 这道题还是比较简单的吧本蒟蒻竟然先想到的是平均数,要去重读小学了,这道题是一道中位数加排序题,至于为什么是中位数这里不予证明. #include<bits/stdc++.h> using namespace std; int n,a[100010]; long long sum,a

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

环形均分纸牌 #include<cstdio> #include<cmath> #include<algorithm> using namespace std; typedef long long ll; const int maxn=100000+10; ll heng[maxn],shu[maxn]; ll sum[maxn]; ll getans(ll a[maxn],int n){ ll k=a[0]/n; for (int i=1;i<=n;i++){

[bzoj3032][TYVJ P1924]七夕祭(环形均分纸牌,货仓选址)

题意 七夕节因牛郎织女的传说而被扣上了「情人节」的帽子. 于是TYVJ今年举办了一次线下七夕祭. Vani同学今年成功邀请到了cl同学陪他来共度七夕,于是他们决定去TYVJ七夕祭游玩. TYVJ七夕祭和11区的夏祭的形式很像. 矩形的祭典会场由N排M列共计N×M个摊点组成. 虽然摊点种类繁多,不过cl只对其中的一部分摊点感兴趣,比如章鱼烧.苹果糖.棉花糖.射的屋--什么的. Vani预先联系了七夕祭的负责人zhq,希望能够通过恰当地布置会场,使得各行中cl感兴趣的摊点数一样多,并且各列中cl感兴

[总结]中位数及带权中位数问题

目录 一.中位数问题 1. 问题模型 2. 结论 3. 推导 4. 例题 二.带权中位数问题 1. 问题模型 2. 结论 3. 推导 4. 例题 一.中位数问题 1. 问题模型 数轴\(x\)上有\(n\)个点,现在给出这\(n\)个点的坐标\(a[i](i\in [1,n])\),让你选择一个点\(k(k\in [1,n])\),使得每个点到点\(k\)的距离之和最小. 2. 结论 点\(k\)为序列的中位数时最优: 若n为奇数,点\(k\)位于a[(n+1)/2]处最优:若n为偶数,点\(k

【浮*光】#noip# 知识点总结

[零. 序言] ------头文件 #include<cstdio>    #include<iostream>    #include<cstring>    #include<string>    #include<algorithm>    #include<cmath>    #include<set>    #include<vector>    #include<map>    #inc

贪心小总结

介绍几种贪心题型 1.选择不相交区间: 按照结束时间从大到小排序,如果区间左端点大于当前最右点就选,否则不选. 例题:活动安排: #include<cstdio> #include<algorithm> #include<iostream> #include<cstring> #include<cmath> #include<queue> using namespace std; const int maxm=1100; int n,

bzoj3032 七夕祭题解

题面 TYVJ七夕祭和11区的夏祭的形式很像.矩形的祭典会场由N排M列共计N×M个摊点组成.虽然摊点种类繁多,不过cl只对其中的一部分摊点感兴趣,比如章鱼烧.苹果糖.棉花糖.射的屋--什么的.Vani预先联系了七夕祭的负责人zhq,希望能够通过恰当地布置会场,使得各行中cl感兴趣的摊点数一样多,并且各列中cl感兴趣的摊点数也一样多. 不过zhq告诉Vani,摊点已经随意布置完毕了,如果想满足cl的要求,唯一的调整方式就是交换两个相邻的摊点.两个摊点相邻,当且仅当他们处在同一行或者同一列的相邻位置