问题类型:求多个定点到一个可动点距离之和最小值

数学背景:1.|x - m| + |x - n|型 通过去绝对值易得函数f(x) = |x - m| + |x - n|(m < n) 为以点(m, n - m) (n, n - m)为折点的倒梯形

2.|x - m| - |x - n|型 通过去绝对值易得函数f(x) = |x - m| - |x - n|(m < n) 为以点((m + n)/2 , 0)为 对称中心的“Z”字形

3.a|x - m| + b|x - n|型(a,b为常数) 通过去绝对值易得函数f(x) = a|x - m| + b|x - n|(m < n)以点

(m, f(m)) (n, f(n) )为折点的折线。 a+b>0时有最小值 min (f(m), f(n) ),其他情况有兴趣的同志可 以自己推导

4.sum(i = 1, 2,...,n) | x - ai |, 当n为奇数时函数图像为"V"字形,中点可取最小值

当n为偶数时函数图像为倒梯形,中间平滑段随意取可得最小值

具体问题:

sum(i = 1, 2,...,n) | x - ai |型

在一条数轴上有 n 家商店,它们的坐标分别为 A1∼An。

现在需要在数轴上建立一家货仓,每天清晨,从货仓到每家商店都要运送一车商品。

为了提高效率,求把货仓建在何处,可以使得货仓到每家商店的距离之和最小。

输入格式

第一行输入整数 n。

第二行 n 个整数 A1∼An。

输出格式

输出一个整数,表示距离之和的最小值。

数据范围

1≤N≤100000,
0≤Ai≤40000

输入样例:

4
6 2 9 1

输出样例:

12
#include<stdio.h>int n, a[100010];
void sort(int q[], int l, int r)
{if (l >= r) return;int i = l - 1, j = r + 1, x = q[l + r >> 1];while (i < j){do i ++ ; while (q[i] < x);do j -- ; while (q[j] > x);int temp;if (i < j){temp = a[j];a[j] = a[i];a[i] = temp;}}sort(q, l, j);sort(q, j + 1, r);
}int main()
{scanf("%d", &n);for(int i = 0; i < n; i ++) scanf("%d", &a[i]);sort(a, 0, n - 1);int x_min = 0;for(int i = 0; i < n; i ++)x_min += abs(a[i] - a[n >> 1]);printf("%d", x_min);return 0;
}

贪心算法 绝对值不等式 C语言描述相关推荐

  1. 《数据结构、算法与应用 —— C++语言描述》学习笔记 — 优先级队列 — 左高树

    <数据结构.算法与应用 -- C++语言描述>学习笔记 - 优先级队列 - 左高树 一.左高树 1.外部节点 2.高度优先左高树 (1)定义 (2)特性 (3)HBLT 与 大小根树 3. ...

  2. 第四十一章 贪心算法——排序不等式

    第四十一章 贪心算法--排序不等式 一.题目信息 二.排序不等式 1.算法内容 2.算法证明 3.思路分析 三.代码实现 一.题目信息 二.排序不等式 1.算法内容 2.算法证明 3.思路分析 这道题 ...

  3. 数据结构、算法与应用c++语言描述(答案)

    数据结构.算法与应用c++语言描述(答案) https://www.cise.ufl.edu/~sahni/dsaac/view.htm   本身不是计算机专业的,属于那种自学半路出家的,最近刚开始看 ...

  4. 资料 | O‘Reilly精品图书系列:算法精解 C 语言描述 (简体中文)

    下载地址:资料 | O'Reilly精品图书系列:算法精解 C 语言描述 (简体中文) 内容简介 · · · · · · 本书是数据结构和算法领域的经典之作,十余年来,畅销不衰! 全书共分为三部分:第 ...

  5. 算法与数据结构java语言描述 英文版_CVPR2020 |室内设计师失业?针对语言描述的自动三维场景设计算法...

    近日,计算机视觉顶会CVPR 2020接收论文结果公布,从6656篇有效投稿中录取了1470篇论文,录取率约为22%.在<Intelligent Home 3D: Automatic 3D-Ho ...

  6. 《数据结构、算法与应用 —— C++语言描述》学习笔记 — 回溯法

    <数据结构.算法与应用 -- C++语言描述>学习笔记 - 回溯法 一.算法思想 二.货箱装载 1.问题描述 2.回溯算法 3.实现 4.测试代码 一.算法思想 回溯法是搜索问题解的一种系 ...

  7. 《数据结构、算法与应用 —— C++语言描述》学习笔记 — 竞赛树

    <数据结构.算法与应用 -- C++语言描述>学习笔记 - 竞赛树 一.赢者树 二.二叉树的数组描述(补充) 1.声明 2.实现 三.赢者树 1.抽象数据类型 2.赢者树的表示 3.声明 ...

  8. 贪心算法设计作业调度c语言,贪心算法 - 数据结构与算法教程 - C语言网

    1.简介 贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择.也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解. 贪心算法不是对所有问题都能得到整体最优 ...

  9. 最小生成树普里姆算法c语言代码,普里姆算法生成最小生成树-C语言描述.doc

    PAGE JIN JINGCHU UNIVERSITY OF TECHNOLOGY <数据结构(C语言描述)> 课程设计 学 院 计算机工程学院 班 级 12级软件技术1班 学 号 201 ...

最新文章

  1. Android之SurfaceView(二)
  2. 根据用户查进程_Linux中的系统进程管理
  3. JAVA遍历21位数
  4. 2.10 m 个样本的梯度下降
  5. python中的scipy基础知识_python3 scipy 入门
  6. c#定时器Timer
  7. 计算机专业建设会议纪要,本学期第六次专业建设工作会议纪要
  8. docker视频教程下载
  9. 代码-检测文件的编码
  10. mysql 内联 外联_sql中的内联和外联(简单用法)
  11. 驾考计算机播报原理,科目三电子路考流程详解 考驾照的都看看!
  12. 调用微信红包接口返回(转)
  13. 中国宠物医疗市场产业消费需求及盈利前景预测报告(2022-2027年)
  14. CCNP路由学习技巧
  15. win10系统还原被组策略关闭怎么解决
  16. 微信-生成小程二维码
  17. vue style样式变量背景图
  18. JAVA计算机毕业设计中医药科普网站Mybatis+源码+数据库+lw文档+系统+调试部署
  19. 模块DIY——基于DDS直接数字频率合成技术自制的可编程任意波形发生器模块(DDS原理、寄存器解读、原理图设计、驱动程序-适用于AD9833/AD9834/AD9838)
  20. ARM开发之基于IIC协议的TM1650驱动实现(模拟IIC实现)

热门文章

  1. 讯搜 配置mysql_迅搜创建数据库索引
  2. 晕菜~~~竟然出了这样的事情~~
  3. 使用WT工具恢复MongoDB数据
  4. Linux相关命令及软件安装教程
  5. 兰迪·波许教授的最后一课
  6. case when then else end用法
  7. 计算机中的光学知识,科学网—光学基础知识大讲堂 ——第3期:详解电磁辐射 - 何卓铭的博文...
  8. 依托抖音、快手直播的上架工具开发
  9. 江苏科技大学苏州理工学院《计算机程序设计基础实践VC++》实验报告
  10. 翻翻git之---史上最强的图片选择器 GalleryFinal(顺带附下麦麦,当当的近照)