Day-1 货仓选址(绝对值不等式)
主要考点:绝对值不等式
结论:在一个长度为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 货仓选址(绝对值不等式)相关推荐
- [绝对值不等式] 货仓选址(绝对值不等式+贪心)
文章目录 0. 前言 1. 排序不等式+贪心 0. 前言 最最最经典的绝对值不等式问题,有很多变种.这个题是最裸的模板题了. 1. 排序不等式+贪心 104. 货仓选址 贪心思路: 按照商店坐标从小到 ...
- 023货仓选址(绝对值不等式)
题目描述: 在一条数轴上有 N 家商店,它们的坐标分别为 A1~AN. 现在需要在数轴上建立一家货仓,每天清晨,从货仓到每家商店都要运送一车商品. 为了提高效率,求把货仓建在何处,可以使得货仓到每家商 ...
- 104. 货仓选址——绝对值不等式的运用,中位数巧用
题目链接 文章目录 题解 AC代码 注意 题解 |a-x|+|b-x|>=|a-b| 当只有a,b两个商店时,仓库建在a,b之间可以取得最小值 扩展到n个物品的时候 当n为偶数时,ans=|x- ...
- 绝对值不等式 AcWing 104. 货仓选址
绝对值不等式 AcWing 104. 货仓选址 原题链接 AcWing 104. 货仓选址 算法标签 排序 快速选择算法 贪心 绝对值不等式 思路 排序后取中位数为货仓建立地点 证明 根据 则 等号成 ...
- [AcWing] 104. 货仓选址(C++实现)贪心---绝对值不等式例题
[AcWing] 104. 货仓选址(C++实现)贪心---绝对值不等式例题 1. 题目 2. 读题(需要重点注意的东西) 3. 解法 4. 可能有帮助的前置习题 5. 所用到的数据结构与算法思想 6 ...
- 每日四题打卡-4.15:耍杂技的牛/贪心绝对值不等式-货仓选址/贪心排序不等式-排队打水/huffman哈夫曼树-合并果子
耍杂技的牛 具体:https://blog.csdn.net/qq_27262727/article/details/105515507 农民约翰的N头奶牛(编号为1..N)计划逃跑并加入马戏团,为此 ...
- Acwing104. 货仓选址:贪心(绝对值不等式)
文章目录 题目分析 题目链接 题目分析 原题: 在一条数轴上有 N 家商店,它们的坐标分别为 A1~AN. 现在需要在数轴上建立一家货仓,每天清晨,从货仓到每家商店都要运送一车商品. 为了提高效率,求 ...
- [算法总结] 中位数+绝对值不等式 AcWing 104. 货仓选址
104. 货仓选址 思路: 排序之后取中位数 中位数的性质,所有数到他的和是最小的 大佬的话: 中位数有非常优秀的性质, 比如说在这道题目中, 每一个点到中位数的距离, 都是满足全局的最有性,而不是局 ...
- 贪心——绝对值不等式——货仓选址
货仓选址 对于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- ...
- Leetcode1703. 得到连续 K 个 1 的最少相邻交换次数[C++题解]:难(货仓选址加强版+滑动窗口+前缀和)
文章目录 题目分析 题目链接 题目分析 首先需要明确一点:最优结果中1的相对位置和开始时不会改变.否则的话就是交换两个1,会徒劳增加交换次数. 比如[1,0,0,0,0,0,1,1],最后变成[0,0 ...
最新文章
- DB_Links创建际删除
- VTK:可视化之CornerAnnotation
- Enterprise Spring示例和集成测试
- 光纤收发器出现死机故障怎么解决
- centos7安装csvn
- 安装sql时挂起的解决方法
- 数据结构基础--线性表
- 调用codesoft,打印条码,批量连续打印,变量打印
- IntelliJ IDEA 集成 SVN
- win32com 操作excel
- 【日语】日语一级句型强记
- cmd命令行使用ffmpeg合并mp4格式视频文件
- 报错 | Error: EPERM: operation not permitted, unlink ‘C:\Users\Admin\practice\node_modules\css-loader
- vue中使用layui实现树形菜单增删改查功能
- python学习(二)User-Agent
- 多媒体个人计算机能处理什么,多媒体信息处理
- Anchor Boxes
- css3小狗滑滑梯动画js特效
- ImportError: cannot import name ‘_maybe_get_pandas_wrapper_freq‘ from ‘statsmodels.tsa.filters._util
- 【GDOI2017第三轮模拟day1】影魔(主席树)
热门文章
- 【物理应用】基于Zernike多项式的大气湍流相位屏的数值模拟附matlab代码
- 服务器文件上传500报错,500 InternalServerError
- 初识OFDM(八):OFDM中的PAPR计算和通频带仿真
- linux 双网卡bond命令,Linux下bond双网卡绑定(示例代码)
- java实现视频弹幕效果,SpringBoot实现视频弹幕功能 DanmuPlayer插件的使用
- C/C++ 中公认的三个难点
- Solr查询参数wt
- 微软今天的Windows 10硬件发布会汇总:手机瞬间变PC
- C++ 类型定义顺序问题
- 熔喷布喷丝板模具微孔加工技术工艺