主要考点:绝对值不等式

结论:在一个长度为n的区间,中间值x到区间各点的距离之和最短。若n为奇数,则x为中位数,若n为偶数,则x为中间两个中的任意一个。

证明:

渐进式取中。

题目描述

在一条数轴上有 NN 家商店,它们的坐标分别为 A1A1~ANAN。

现在需要在数轴上建立一家货仓,每天清晨,从货仓到每家商店都要运送一车商品。

为了提高效率,求把货仓建在何处,可以使得货仓到每家商店的距离之和最小。

输入格式

第一行输入整数N。

第二行N个整数A1A1~ANAN。

输出格式

输出一个整数,表示距离之和的最小值。

数据范围

1≤N≤1000001≤N≤100000,
0≤Ai≤400000≤Ai≤40000

输入样例:

4
6 2 9 1

输出样例:

12

方法一: O(nlogn)

#include <iostream>
#include <algorithm>
using namespace std;const int N = 100010;int n;
int a[N];int main()
{cin >> n;for(int i = 0;i < n; i ++ )scanf("%d",&a[i]);sort(a,a+n);int sum;for(int i = 0; i < n; i ++ )sum += abs(a[i] - a[n/2]);cout << sum << endl; return 0;
}

方法二: 快速选择函数<O(n)>

nth_element

#include <iostream>
#include <algorithm>using namespace std;const int N = 100010;int n;
int a[N];int main()
{cin >> n;for(int i = 0; i < n; i ++ )cin >> a[i];nth_element(a,a+n/2,a+n);int res;for(int i = 0; i < n; i ++ ) res += abs(a[i] - a[n/2]);cout << res << endl;return 0;
}

拓展:一维拓展到二维

在二维平面内找一点,到各点距离和最短。

方法:三分

*拓展:拓展到多维

例如10维 , 方法:模拟退火算法。

Day-1 货仓选址(绝对值不等式)相关推荐

  1. [绝对值不等式] 货仓选址(绝对值不等式+贪心)

    文章目录 0. 前言 1. 排序不等式+贪心 0. 前言 最最最经典的绝对值不等式问题,有很多变种.这个题是最裸的模板题了. 1. 排序不等式+贪心 104. 货仓选址 贪心思路: 按照商店坐标从小到 ...

  2. 023货仓选址(绝对值不等式)

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

  3. 104. 货仓选址——绝对值不等式的运用,中位数巧用

    题目链接 文章目录 题解 AC代码 注意 题解 |a-x|+|b-x|>=|a-b| 当只有a,b两个商店时,仓库建在a,b之间可以取得最小值 扩展到n个物品的时候 当n为偶数时,ans=|x- ...

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

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

  5. [AcWing] 104. 货仓选址(C++实现)贪心---绝对值不等式例题

    [AcWing] 104. 货仓选址(C++实现)贪心---绝对值不等式例题 1. 题目 2. 读题(需要重点注意的东西) 3. 解法 4. 可能有帮助的前置习题 5. 所用到的数据结构与算法思想 6 ...

  6. 每日四题打卡-4.15:耍杂技的牛/贪心绝对值不等式-货仓选址/贪心排序不等式-排队打水/huffman哈夫曼树-合并果子

    耍杂技的牛 具体:https://blog.csdn.net/qq_27262727/article/details/105515507 农民约翰的N头奶牛(编号为1..N)计划逃跑并加入马戏团,为此 ...

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

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

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

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

  9. 贪心——绝对值不等式——货仓选址

    货仓选址 对于a,b两点 L=|x-a|+|x-b|,最优解一定在a和b之间 L>=b-a f(x)=|x1-x|+|x2-x|+--+|xn-x| =(|x1-x|+|xn-x|)+(|x2- ...

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

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

最新文章

  1. DB_Links创建际删除
  2. VTK:可视化之CornerAnnotation
  3. Enterprise Spring示例和集成测试
  4. 光纤收发器出现死机故障怎么解决
  5. centos7安装csvn
  6. 安装sql时挂起的解决方法
  7. 数据结构基础--线性表
  8. 调用codesoft,打印条码,批量连续打印,变量打印
  9. IntelliJ IDEA 集成 SVN
  10. win32com 操作excel
  11. 【日语】日语一级句型强记
  12. cmd命令行使用ffmpeg合并mp4格式视频文件
  13. 报错 | Error: EPERM: operation not permitted, unlink ‘C:\Users\Admin\practice\node_modules\css-loader
  14. vue中使用layui实现树形菜单增删改查功能
  15. python学习(二)User-Agent
  16. 多媒体个人计算机能处理什么,多媒体信息处理
  17. Anchor Boxes
  18. css3小狗滑滑梯动画js特效
  19. ImportError: cannot import name ‘_maybe_get_pandas_wrapper_freq‘ from ‘statsmodels.tsa.filters._util
  20. 【GDOI2017第三轮模拟day1】影魔(主席树)

热门文章

  1. 【物理应用】基于Zernike多项式的大气湍流相位屏的数值模拟附matlab代码
  2. 服务器文件上传500报错,500 InternalServerError
  3. 初识OFDM(八):OFDM中的PAPR计算和通频带仿真
  4. linux 双网卡bond命令,Linux下bond双网卡绑定(示例代码)
  5. java实现视频弹幕效果,SpringBoot实现视频弹幕功能 DanmuPlayer插件的使用
  6. C/C++ 中公认的三个难点
  7. Solr查询参数wt
  8. 微软今天的Windows 10硬件发布会汇总:手机瞬间变PC
  9. C++ 类型定义顺序问题
  10. 熔喷布喷丝板模具微孔加工技术工艺