当前位置: 首页 > article >正文

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

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

#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|

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

#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;
}


http://www.kler.cn/a/547483.html

相关文章:

  • Window下Redis的安装和部署详细图文教程(Redis的安装和可视化工具的使用)
  • 【kafka系列】消费者重平衡
  • CAS单点登录(第7版)25.通知
  • 如果 main 里面引入 axios ,然后引入 router ,而 router 里面也引入 axios,会不会重复
  • 2月第九讲“探秘Transformer系列”
  • 位图(C语言版)
  • 前后端的身份认证
  • 基于微信小程序校园订餐的设计与开发(ssm论文源码调试讲解)
  • npm版本号标记
  • 输电杆塔沉降智能监测系统:如何用数据守护电网安全
  • 【一文读懂】WebRTC协议
  • 消息中间件深度剖析:以 RabbitMQ 和 Kafka 为核心
  • (学习总结23)Linux 目录、通配符、重定向、管道、shell、权限与粘滞位
  • webassembly009 transformers.js 网页端侧推理 whisper-web
  • 「软件设计模式」装饰者模式(Decorator)
  • POI 的 Excel 读写操作教程
  • 2025年:人工智能驱动下运维自动化新方向
  • 1.【BUUCTF】[SUCTF 2019]EasyWeb
  • 通过例子学 rust 个人精简版 1-1
  • 计算机基础-内存分配