0501 货仓选址 【中位数 距离和的最小值】

news2024/11/24 3:39:39

0501 货仓选址 【中位数 距离和的最小值】
描述
在一条数轴上有N家商店,它们的坐标分别为 A[1]~A[N]。现在需要在数轴上建立一家货仓,每天清晨,从货仓到每家商店都要运送一车商品。为了提高效率,求把货仓建在何处,可以使得货仓到每家商店的距离之和最小。
输入格式
第一行一个整数N,第二行N个整数A[1]~A[N]。
输出格式
一个整数,表示距离之和的最小值。
样例输入
4
6 2 9 1
样例输出
12
数据范围与约定
对于100%的数据: N<=100000, A[i]<=1000000
Contest Hunter - 信息学自助比赛平台

问题:x=?,求|A1-x|+ |A2-x|+…+|An-x|最小值。
思路:将A[0]~A[N-1]排序,设货仓建在x坐标处,x 的左侧商店有 P 家,右侧Q 家,若P<Q,则把货仓向右移动移动 1 单位距离,则总距离和就会减少Q-P,同理,若P>Q,则货仓向左移动时总距离和变小,当 P=Q 时为最优解。

因此,货仓应该建在中位数处,当N为奇数时,建在A[N/2]处当 N为偶数时,建在A[(N-1)/2]~A[N/2]之间(包括端点)的任何位置都是。

#include <bits/stdc++.h>
using namespace std;
const int N=1e5+5;
int n,a[N],m;
int main()
{	
	cin>>n;
	for(int i=0;i<n;i++)cin>>a[i];
	sort(a,a+n);
	int ans=0;
	m=a[n/2];
	for(int i=0;i<n;i++)
		ans+=abs(m-a[i]);
	cout<<ans<<endl;
    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1071595.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

git+码云提交PR流程记录

前提条件&#xff1a;注册码云账号&#xff0c;本地安装git 如果不知道怎么注册和安装&#xff0c;可以参考gitgitee入门教程&#xff08;https://bbs.huaweicloud.com/forum/thread-55222-1-1.html&#xff09; 登录自己的码云账号 登陆了之后&#xff0c;在码云上打开目标项…

k8s-8 ingress-nginx

nodeport 默认端口 nodeport默认端口是30000-32767&#xff0c;超出会报错 添加如下参数&#xff0c;端口范围可以自定义 externalname ingress-nginx 通过一个外部的vip 地址 访问到集群内的多个service 一种全局的、为了代理不同后端 Service 而设置的负载均衡服务&…

照片处理软件Lightroom Classic mac中文版功能介绍(Lrc2021)

Lightroom Classic 2022 mac是一款桌面编辑工具&#xff0c;lrc2021 mac包括提亮颜色、使灰暗的摄影更加生动、删除瑕疵、将弯曲的画面拉直等。您可以在电脑桌面上轻松整理所有照片。使用Lightroom Classic&#xff0c; 轻松整理编辑照片&#xff0c;为您的作品锦上添花。 Ligh…

Vega Prime入门教程11:软件界面

本文首发于&#xff1a;Vega Prime入门教程11&#xff1a;软件界面 Vega Prime工具包中&#xff0c;包含了一个重要的编辑器Lynx prime(以后简称LP)&#xff0c;它为VP提供一个人机交互界面。 启动 打开桌面上的快捷方式 软件会自动打开模板工程 界面构成 LynX Prime用户界…

阿加犀AI应用案例征集活动 持续进行中!

当下&#xff0c;人工智能正经历着迅猛的技术进步和广泛的应用拓展&#xff0c;边缘端计算运行也成为了一个重要的趋势。边缘计算通过降低延迟、节省带宽、增强隐私保护、提高系统可靠性等特性&#xff0c;为AI和IoT应用提供了强大的支持&#xff0c;使得智能应用更加灵活、高效…

通信与网络及软件工具的使用心得与记录

在当今的信息时代&#xff0c;通信工程和网络工具已经成为我们工作和生活中不可或缺的一部分。为了更好地利用这些工具&#xff0c;我们需要了解它们的基本原理和使用方法。本文将为您详细介绍一些重要的通信工程和网络工具&#xff0c;以及它们在实际应用中的使用心得和笔记。…

阶段六-Day01-Linux入门

一、 Linux简介 1. 概念 Linux是一款操作系统。和Windows操作系统类似。 2. Linux操作系统的优势 2.1 稳定性 Linux采取了许多安全技术措施&#xff0c;其中有对读、写进行权限控制、审计跟踪、核心授权等技术&#xff0c;这些都为安全提供了保障。 据说Linux系统可以十年…

应用案例 | dataFEED OPC Suite为化工行业中的质量控制和成本节约提供数据集成方案

一 背景 在当今化工行业中&#xff0c;质量控制对于特种塑料供应商至关重要。一家国际性的特种塑料供应商在全球拥有五个生产基地&#xff0c;每个基地都运行着2-6台塑料挤出机。为了确保塑料质量&#xff0c;他们需要每两小时分析一次挤出样品——导致这项工作占用了较大的生…

如何向客户推广 API 商品数据接口,如何跟进项目和程序员对接?

一、了解 API商品数据接口 在推广 API 商品数据接口之前&#xff0c;首先需要了解它的基本概念、优势以及如何选择合适的接口。 1.API 商品数据接口的基本概念 API 是 Application Programming Interface 的缩写&#xff0c;即应用程序编程接口。API 商品数据接口是一种允许…

C++ 01.学习C++的意义-狄泰软件学院

一些历史 UNIX操作系统诞生之初是用汇编语言编写的随着UNIX系统的发展&#xff0c;汇编语言的开发效率成为瓶颈&#xff0c;所以需要一个新的语言替代汇编语言1971年通过对B语言改良&#xff0c;使其能直接产生机器代码&#xff0c;C语言诞生UNIX使用C语言重写&#xff0c;同时…

力扣 -- 5. 最长回文子串

解题步骤&#xff1a; 参考代码&#xff1a; class Solution { public:string longestPalindrome(string s) {int ns.size();vector<vector<bool>> dp(n,vector<bool>(n));//最长回文串的起始位置int start0;//最长回文串的长度int len0;for(int in-1;i>…

前端开发转岗项目经理有什么建议吗?

前端开发转岗项目经理是一个不同领域的跨越&#xff0c;需要经历很多的学习和实践。当一个前端开发转岗项目经理时&#xff0c;需要做出一些改变&#xff0c;以适应新的角色和职责。在这篇文章中&#xff0c;我将分享一些建议&#xff0c;帮助前端开发转岗项目经理更好地适应新…

TensorFlow入门(十一、图的基本操作)

建立图 一个TensorFlow程序默认是建立一个图的,除了系统自动建图以外,还可以用tf.Graph()手动建立,并做一些其他的操作 如果想要获得程序一开始默认的图,可以使用tf.get_default_graph()函数 如果想要重新建立一张图代替原来的图,可以使用tf.reset_default_graph()函数 注意:在…

PL/SQL拉链表

练习:-- 拉链表练习: 维度表源表 ID M_NAME REST UP_DATE 1 车贷 0.01 2022/12/1 2 房贷 0.03 2022/12/1 3 经营贷 0.015 2022/12/1 维度表拉链表 ID M_NAME REST BEGIN_DATE END_DATE 1 车贷 …

ARM作业1

三盏灯流水 代码 .text .global _start _start: 1.设置GPIOE寄存器的时钟使能 RCC_MP_AHB4ENSETR[4]->1 0x50000a28 LDR R0,0X50000A28 LDR R1,[R0] 从r0为起始地址的4字节数据取出放在R1 ORR R1,R1,#(0x3<<4) 第4位设置为1 STR R1,[R0] 写回2.设置PE10管…

STM32入门笔记14_RTC实时时钟

BKP和RTC实时时钟 BKP BKP简介 BKP(Backup Registers) 备份寄存器BKP可用于存储用户应用程序数据。当VDD(2.0-3.6V) 电源被切断时&#xff0c;仍然由VBAT(1.8-3.6V) 维持供电。当系统在待机模式下被唤醒&#xff0c;或系统复位或电源复位时&#xff0c;也不会被复位TAMPER引…

NoSQL之Redis 群集模式实现高可用

目录 1 Redis 群集模式 1.1 集群的作用&#xff0c;可以归纳为两点 1.2 Redis集群的数据分片 2 搭建Redis 群集模式 2.1 开启群集功能 2.2 启动redis节点 2.3 启动集群 2.4 测试群集 1 Redis 群集模式 集群&#xff0c;即Redis Cluster&#xff0c;是Redis 3.0开始引入…

基于FPGA的数字时钟系统设计

在FPGA的学习中&#xff0c;数字时钟是一个比较基础的实验案例&#xff0c;通过该实验可以更好的锻炼初学者的框架设计能力以及逻辑思维能力&#xff0c;从而打好坚实的基本功&#xff0c;接下来就开始我们的学习吧&#xff01; 1.数码管介绍 数码管通俗理解就是将8个LED(包含…

ARM-day5作业

.text .global _start _start: 1、设置GPIOE、GPIOF寄存器的时钟使能 RCC_MP_AHB4ENSETR[4]->1 0x50000a28 LDR R0,0x50000a28 LDR R1,[R0] ORR R1,R1,#(0x3<<4) STR R1,[R0]2、设置PE10、PF10、PE8管脚为输出模式 GPIOE_MODER[21:20]->01 0x50006000…

【数据恢复篇】记一次Winhex镜像还原(恢复)到磁盘测试记录

【数据恢复篇】记一次Winhex镜像还原&#xff08;恢复&#xff09;到磁盘测试记录 镜像恢复到磁盘&#xff0c;怎么操作&#xff1f;会不会对磁盘有影响&#xff0c;是恢复到空磁盘&#xff1f;还是恢复到有数据的磁盘也可以&#xff1f;有数据的盘磁盘空间很多&#xff0c;恢…