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

算法题(145):货仓选址

审题:
本题需要我们找出距离之和的最小值

思路:
方法一:贪心

贪心策略:将货仓建立在所有商店的中间可以达到距离之和最小

因为每家商店都需要接收一车商品,所以这里的距离之和指的是从货仓到每一家商店的路线的距离之和

贪心证明:
数学公式:|a-x| + |b-x| >= |a-b|

这个公式的意思是数轴上的a,b两点分别和数轴上任意一点之间的距离之和不小于a,b之间的距离,即一点x到a,b两点的距离之和在x位于a,b之间时最短

总和等于每条路线之和,只要每组商店组的路线都是最小值,那么总和也就是最小值。

所以只要货仓位于所有商店组(以1号商店与n号商店为第一组,依次从前面和后面选商店组队)中间,就可以达到目的。

当商店为奇数个:我们将货仓选在最中间的那个商店位置

当商店为偶数个:我们将货仓选在中间靠左边或靠右边的商店位置都可以,为了与奇数个求法对齐,我们选择靠左边的

解题:

#include<iostream>
#include<algorithm>
using namespace std;
typedef long long ll;
const int N = 1e5 + 10;
int n;
int a[N];
ll cnt;
int main()
{cin >> n;for (int i = 1; i <= n; i++){cin >> a[i];}sort(a + 1, a + 1 + n);//升序排序for (int i = 1; i <= n; i++){cnt += abs(a[i] - a[(1 + n) / 2]);}cout << cnt << endl;return 0;
}

http://www.xdnf.cn/news/406315.html

相关文章:

  • 服务器多JAR程序运行与管理指南
  • ZeRO与3D并行之间的关系
  • 可灵 AI:开启 AI 视频创作新时代
  • GBK与UTF-8编码问题(1)
  • DeepSeek-R1-Distill-Qwen-1.5B代表什么含义?
  • 集成学习——Bagging,Boosting
  • 一个极简单的 VUE3 + Element-Plus 查询表单展开收起功能组件
  • android studio开发aar插件,并用uniapp开发APP使用这个aar
  • Java面试全记录:Spring Cloud+Kafka+Redis实战解析
  • 关于groom毛发attributes
  • 防火墙安全策略基础配置
  • 学习黑客BitLocker与TPM详解
  • 【大数据】MapReduce 编程--WordCount
  • AI赋能:构建个性化智能学习规划系统
  • Android 中 Handler (创建时)内存泄漏问题及解决方案
  • PDFMathTranslate:科学 PDF 文件翻译及双语对照工具
  • Web4X:站在Web4.0时代的起点,定义AI商业新生态
  • 专业知识的检索过程 stepbystep - 样例
  • ARM-CortexM固件升级相关问题研究
  • 采用AI神经网络降噪算法的通信语音降噪(ENC)模组性能测试和应用
  • 学习笔记:Conda 环境共享
  • 2025年SDK游戏盾技术深度解析:AI赋能下的DDoS/CC攻击防御革命
  • Html5新特性_js 给元素自定义属性_json 详解_浅克隆与深克隆
  • 模型上下文协议(MCP):AI的“万能插座”
  • Halcon案例(一):C#联合Halcon识别路由器上的散热孔
  • 【Vue3】使用vite创建Vue3工程、Vue3基本语法讲解
  • Windows 添加 hosts 映射
  • 零碳园区能源系统-多能互补体系
  • 星海智算云平台部署GPT-SoVITS模型教程
  • 傲云源墅:以五傲价值重构北京主城别墅格局