题目链接:点击查看

题目大意:在一条数轴上有N家商店,它们的坐标分别为 A[1]~A[N]。现在需要在数轴上建立一家货仓,每天清晨,从货仓到每家商店都要运送一车商品。为了提高效率,求把货仓建在何处,可以使得货仓到每家商店的距离之和最小。

题目分析:中位数应用最经典的问题之一了,我们设应该将货仓建立在坐标X处,现在X左边有P家商店,X右边有Q家商店,我们需要尽可能的让P=Q才是最优解

这样问题就转换成了求整个序列的中位数了

然后说一下蓝书上给出的结论吧(对于序列a已经排好序):

  1. 当n为奇数时,货仓建在a[n/2+1]处最优
  2. 当n为偶数时,货仓建在a[n/2]~a[n/2+1]之间(包含端点)的任意位置都是最优

这样一来,为了方便书写,我们不妨设a[(n+1)/2]作为中位数,就能都满足奇偶的两个条件了,也不用分类讨论了

代码:

#include<iostream>
#include<cstdlib>
#include<string>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<climits>
#include<cmath>
#include<cctype>
#include<stack>
#include<queue>
#include<list>
#include<vector>
#include<set>
#include<map>
#include<sstream>
using namespace std;typedef long long LL;const int inf=0x3f3f3f3f;const int N=1e5+100;int a[N];int main()
{
//  freopen("input.txt","r",stdin);
//  ios::sync_with_stdio(false);int n;scanf("%d",&n);for(int i=1;i<=n;i++)scanf("%d",a+i);sort(a+1,a+1+n);int temp=a[(n+1)/2];LL ans=0;for(int i=1;i<=n;i++)ans+=llabs(temp-a[i]);cout<<ans<<endl;return 0;
}

CH - 0501 货仓选址(中位数)相关推荐

  1. 中位数应用-货仓选址-纸牌均分-糖果传递-七夕祭

    1. 货仓选址 描述 在一条数轴上有N家商店,它们的坐标分别为 A[1]~A[N].现在需要在数轴上建立一家货仓,每天清晨,从货仓到每家商店都要运送一车商品.为了提高效率,求把货仓建在何处,可以使得货 ...

  2. [算法总结] 中位数+绝对值不等式 AcWing 104. 货仓选址

    104. 货仓选址 思路: 排序之后取中位数 中位数的性质,所有数到他的和是最小的 大佬的话: 中位数有非常优秀的性质, 比如说在这道题目中, 每一个点到中位数的距离, 都是满足全局的最有性,而不是局 ...

  3. 中位数--《算法竞赛进阶指南》(货仓选址和七夕祭问题详解)

    中位数 今天又和大家见面了啦~ 依旧是 <算法竞赛进阶指南>的学习哦~ 中位数(Median)又称中值,统计学中的专有名词,是按顺序排列的一组数据中居于中间位置的数,代表一个样本.种群或概 ...

  4. poj1723 SOLDIERS(思维题-中位数/货仓选址问题)

    题目 n(n<=1e4)个士兵,第i个士兵的位置(xi,yi),-1e4<=xi,yi<=1e4 把士兵安排到同一条水平线上,使之在竖直方向n个士兵相邻 最后排成(x,y),(x+1 ...

  5. 绝对值不等式 AcWing 104. 货仓选址

    绝对值不等式 AcWing 104. 货仓选址 原题链接 AcWing 104. 货仓选址 算法标签 排序 快速选择算法 贪心 绝对值不等式 思路 排序后取中位数为货仓建立地点 证明 根据 则 等号成 ...

  6. 解题报告 - 牛客练习赛63 C - 牛牛的揠苗助长(货仓选址+二分)

    链接:https://ac.nowcoder.com/acm/contest/5531/C 来源:牛客网 题目描述 牛牛有一块长度大小为n的菜园,他首先对这块菜园从1到n进行了编号,每一块地分别为1号 ...

  7. Leetcode1703. 得到连续 K 个 1 的最少相邻交换次数[C++题解]:难(货仓选址加强版+滑动窗口+前缀和)

    文章目录 题目分析 题目链接 题目分析 首先需要明确一点:最优结果中1的相对位置和开始时不会改变.否则的话就是交换两个1,会徒劳增加交换次数. 比如[1,0,0,0,0,0,1,1],最后变成[0,0 ...

  8. Acwing104. 货仓选址:贪心(绝对值不等式)

    文章目录 题目分析 题目链接 题目分析 原题: 在一条数轴上有 N 家商店,它们的坐标分别为 A1~AN. 现在需要在数轴上建立一家货仓,每天清晨,从货仓到每家商店都要运送一车商品. 为了提高效率,求 ...

  9. Arithmetic Sequence 三分,货仓选址,nth_element,__int128(济南)

    题意 : 给一序列,每次操作选择一个数加一或者减一,需要将这个序列变成等差数列,问最小操作数 思路 : 数据范围很大又没有头绪,想到二分或者三分.对于不同的公差d,肯定是只有一个最优,两边的都比这个公 ...

最新文章

  1. “.Net 社区虚拟大会”(dotnetConf) 2016 Day 3 Keynote: Scott Hanselman
  2. Mask_YOLO_Caffe:基于Mask-RCNN和YOLO检测的工程实现(附源代码)
  3. 停笔几天,休息一下也顺便思考一下人生
  4. 性味归经与功能的脚本(超过四元素)
  5. angular html清除元素,使用AngularJS删除DOM元素
  6. 混合云的承诺,收益和产品
  7. 科普 | 以链接为中心的系统:Link-based Systems
  8. 深入理解DOM事件机制系列第四篇——事件模拟
  9. MySQL技术内幕 - 第一章 MySQL体系结构和存储引擎
  10. 360浏览器html5无法播放,win7系统360浏览器播放不了视频的解决方法
  11. 微信开发者工具的使用和各个文件的作用
  12. 人资(人事)送命连环问,51个问题。
  13. 【NABCD需求分析】Time Shaft·时间轴
  14. mysql8初始化 2021-12-18版本 设置mysql大写
  15. 广东工业大学化学工程考研情况
  16. 闲聊机器人实例四:python实现小姜机器人,BERT检索模型,新增一个余弦相似度Cosine层, 解决BERT句向量编码传输耗时问题。部署tf-serving
  17. 使用CSS实现悬停显示二维码
  18. Android12 支持高斯模糊及高斯模糊原理
  19. C++_计算字符串长度
  20. 衰老研究的大问题:百岁老人的长寿秘密是什么?

热门文章

  1. Redis数据库操作指令
  2. MySQL条件查询介绍
  3. MySQL 高级 - 视图 - 概述
  4. kubernetes-Service
  5. InnoDB的行锁和表锁
  6. hystrix相关配置
  7. SQLExceptionTranslator
  8. 服务的通信和服务发现
  9. SpringBoot异常处理-自定义HandlerExceptionResolver
  10. 封装案例-完成开火方法