备战蓝桥杯:贪心算法之货仓选址

当我们货仓选址在最中间的时候,货仓到每家商店的距离最短

bash 复制代码
#include <iostream>
#include <cstdlib>
#include <algorithm>
typedef long long LL;
using namespace std;
int n;
const int N = 1e5+10;
LL a[N];
int main()
{
	cin >> n;
	for(int i = 1;i<=n;i++) cin >> a[i];
	sort(a+1,a+1+n);
	LL ret= 0;
	for(int i = 1;i<=n;i++) ret+=abs(a[i]-a[n/2]);
	cout << ret << endl;
	
	
	
	return 0;
}

贪心策略证明:

我们首先需要直到一个绝对值不等式的公式

|a-x|+|b-x| >= |a-b|

我们的代码也可以直接用这个公式来算

cpp 复制代码
#include <iostream>
#include <cstdlib>
#include <algorithm>
typedef long long LL;
using namespace std;
int n;
const int N = 1e5+10;
LL a[N];
int main()
{
	cin >> n;
	for(int i = 1;i<=n;i++) cin >> a[i];
	sort(a+1,a+1+n);
	LL ret= 0;
	for(int i = 1;i<=n/2;i++) ret+=abs(a[n-i+1]-a[i]);
	cout << ret << endl;
	
	
	
	return 0;
}
相关推荐
im_AMBER5 分钟前
数据结构 06 线性结构
数据结构·学习·算法
earthzhang20212 小时前
【1028】字符菱形
c语言·开发语言·数据结构·c++·算法·青少年编程
papership2 小时前
【入门级-算法-3、基础算法:二分法】
数据结构·算法
通信小呆呆2 小时前
收发分离多基地雷达椭圆联合定位:原理、算法与误差分析
算法·目标检测·信息与通信·信号处理
丁浩6666 小时前
Python机器学习---2.算法:逻辑回归
python·算法·机器学习
伏小白白白7 小时前
【论文精度-2】求解车辆路径问题的神经组合优化算法:综合展望(Yubin Xiao,2025)
人工智能·算法·机器学习
无敌最俊朗@7 小时前
数组-力扣hot56-合并区间
数据结构·算法·leetcode
囚生CY8 小时前
【速写】优化的深度与广度(Adam & Moun)
人工智能·python·算法
码农多耕地呗8 小时前
力扣94.二叉树的中序遍历(递归and迭代法)(java)
数据结构·算法·leetcode
懒羊羊不懒@8 小时前
Java基础语法—最小单位、及注释
java·c语言·开发语言·数据结构·学习·算法