货仓专题

Acwing 104. 货仓选址

Problem: Acwing 104. 货仓选址 文章目录 思路解题方法复杂度Code 思路 这是一个经典的中位数问题。在一维空间中,使得所有点到某一点的距离之和最小,那个点应该选择所有点的中位数。如果有偶数个点,那么中位数是中间两个数的平均值。 解题方法 首先,我们需要读取所有商店的位置,并将它们排序。然后,我们找到中位数。如果商店的数量是偶数,那么中位数

贪心(基础算法)--- 货仓选址

104. 货仓选址 思路 (贪心)O(nlogn) 题目要求的是n个商店与货仓的距离之和s最小,那么我们可以先来看看当商店如何选择才能使得s最小? 假设区间[a,b]的距离是n 把A[0]~A[N-1]排序,设货仓在X坐标处,X左侧的商店有P家,右侧的商店有Q家。 若P < Q,则每把仓库的选址向右移动1单位距离,距离之和就会变少Q - P.同理,若P > Q,则仓库的选址向左移

C++ 贪心 绝对值不等式 货仓选址

在一条数轴上有 N 家商店,它们的坐标分别为 A1∼AN 。 现在需要在数轴上建立一家货仓,每天清晨,从货仓到每家商店都要运送一车商品。 为了提高效率,求把货仓建在何处,可以使得货仓到每家商店的距离之和最小。 输入格式 第一行输入整数 N 。 第二行 N 个整数 A1∼AN 。 输出格式 输出一个整数,表示距离之和的最小值。 数据范围 1≤N≤100000 , 0≤Ai≤40000 输

算法基础之货仓选址

货仓选址 核心思想: 贪心 绝对值不等式 : ∣ x – a ∣ + ∣ x – b ∣ ≥ ∣ a – b ∣ |x – a| + |x – b| ≥ |a – b| ∣x–a∣+∣x–b∣≥∣a–b∣ 将n个数两两分组 1~~ n-1 (奇数会剩一个) 分别用绝对值不等式 即可推出来 货仓位置应该在中位数上(奇数) 或在中间两数之间(包括端点)(偶数) #include<ios

刷题记录(NC50937 货仓选址,NC18386 字符串,NC207040 丢手绢)

NC50937 货仓选址 题目链接 关键点:  我的第一个想法是,挑中间的点,然后画了一下,发现中间的点大概率为所有点距离的最短和 代码: # include <iostream># include <algorithm>using namespace std;int n, sum;int a[100000+10];int main(){scanf("%d", &n);for