第六章贪心(三):排序不等式、绝对值不等式、推公式

AcWing 913:排队打水

题目

有 n 个人排队到 1 个水龙头处打水,第 i 个人装满水桶所需的时间是 ti,请问如何安排他们的打水顺序才能使所有人的等待时间之和最小?

输入格式

第一行包含整数 n。
第二行包含 n 个整数,其中第 i 个整数表示第 i 个人装满水桶所花费的时间 ti。

输出格式

输出一个整数,表示最小的等待时间之和。

解答

t1, t2, t3, … , tn
总时间 = t1×(n-1) + t2×(n-2) + t3×(n-3) + …
按照从小到大的顺序排队,总时间最小。

#include <iostream>
#include <algorithm>using namespace std;typedef long long LL;const int N = 100010;int main()
{int n;int time[N];scanf("%d", &n);for(int i=0;i<n;i++) scanf("%d", &time[i]);sort(time, time + n);reverse(time, time + n);LL result = 0;for(int i=0;i<n;i++) result += time[i]*i;printf("%lld\n", result);return 0;
}

AcWing 104 货仓选址

题目

在一条数轴上有 N 家商店,它们的坐标分别为 A1∼AN。
现在需要在数轴上建立一家货仓,每天清晨,从货仓到每家商店都要运送一车商品。
为了提高效率,求把货仓建在何处,可以使得货仓到每家商店的距离之和最小。

输入格式

第一行输入整数 N。
第二行 N 个整数 A1∼AN。

输出格式

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

解答

由三角不等式(绝对值不等式)可知,将货仓建在中位数的位置时距离之和最小。首先进行排序。

#include <iostream>
#include <algorithm>using namespace std;const int N = 100010;int main()
{int n;int warehouse[N];scanf("%d", &n);for(int i=0; i<n; i++) scanf("%d", &warehouse[i]);sort(warehouse, warehouse + n);int result = 0;for(int i=0; i<n; i++) result += abs(warehouse[i] - warehouse[n/2]);printf("%d\n", result);return 0;
}

第六章贪心(三):排序不等式、绝对值不等式相关推荐

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

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

  2. ACM - 贪心 - 基础(区间问题 + Huffman树 + 排序不等式 + 绝对值不等式 + 推公式)

    贪心 经典母题 1.区间问题 AcWing 905. 区间选点 AcWing 908. 最大不相交区间数量 AcWing 906. 区间分组 AcWing 907. 区间覆盖 2.Huffman树 A ...

  3. 第六章 贪心 【完结】

    贪心类题型没有固定的模板只有多做题,总结经验. 基本都熟练了 目录 905. 区间选点 908. 最大不相交区间数量 906. 区间分组 [有意思] 907. 区间覆盖[有意思] 148. 合并果子 ...

  4. 第十六章 贪心算法——0/1背包问题

    1.问题描述: 给定n种物品和一背包.物品i的重量是wi,其价值为vi,背包的容量为C.问:应如何选择装入背包的物品,使得装入背包中物品的总价值最大? 形式化描述:给定c >0, wi > ...

  5. 求正多边形的面积JAVA_第六章第三十六题(几何:正多边形的面积)(Geometry: area of a regular polygon)...

    *6.36(几何:正多边形的面积)正多边形是一个n条边的多边形,它的每条边的长度都相等,而且所有角的角度也相等(即多边形既是等边又等角的).计算正多边形面积的公式是: 使用下面的方法头编写方法,返回正 ...

  6. 第六章第三十四题(打印日历)(Print calendar) - 编程练习题答案

    **6.34(打印日历)编程练习题3.21使用Zeller一致性原理来计算某天是星期几.使用Zeller的算法简化程序清单6-12以获得每月开始的第一天是星期几. **6.34(Print calen ...

  7. 每日四题打卡-4.15:耍杂技的牛/贪心绝对值不等式-货仓选址/贪心排序不等式-排队打水/huffman哈夫曼树-合并果子

    耍杂技的牛 具体:https://blog.csdn.net/qq_27262727/article/details/105515507 农民约翰的N头奶牛(编号为1..N)计划逃跑并加入马戏团,为此 ...

  8. 【算法基础26】贪心下——哈夫曼树、排序不等式、绝对值不等式、推公式的思路与应用

    一.合并果子(哈夫曼树) 题目描述:给出n堆不同种类的果子,每堆果子的数量不同,每个果子的重量为1.每次只能合并相邻堆的果子,且花费的体力是果子的重量和.将所有果子合并成一堆,求最小的体力花费. 问题 ...

  9. 贪心(二):排序不等式、绝对值不等式、推公式

    排序不等式 例题:排队打水 有 n 个人排队到 1 个水龙头处打水,第 i 个人装满水桶所需的时间是 titi,请问如何安排他们的打水顺序才能使所有人的等待时间之和最小? 输入格式 第一行包含整数 n ...

最新文章

  1. 肝货,详解 tkinter 图形化界面制作流程!
  2. day9 线程与进程、队列
  3. c#_将文件导入到工程目录下
  4. js超出文字个数展示省略号
  5. 你没有权限在此位置中保持文件 java_Java路径问题解决方案收集
  6. DIV Scroll属性
  7. Web浏览器调试工具firebug
  8. zookeeper 日志查看_Linux环境下安装部署单机Zookeeper
  9. leach协议c++代码_入门教程4:教你STM32F407标准库移植机智云代码(控制LED灯)
  10. hdu1251统计难题
  11. 浅谈管道模型(Pipeline)
  12. 51单片机蜂鸣器播放音乐C语言程序实例,51单片机蜂鸣器播放音乐代码
  13. c++入门 简单语句 空语句 作用域和块 复合语句
  14. ECharts 饼图切换数据源bug 开始没数据显示 切换或刷新后显示
  15. jdk1.8 stream() 把List对象 变成String
  16. 网络爬虫学习软件篇-Python(一)下载安装(超详细教程,傻瓜式说明)
  17. Python词云实现
  18. c语言求粮食分配问题该怎么编程,关于C语言编程题,额不会,求赐教!!
  19. 管理会计习题集及答案 1-4章
  20. 数值微分:导数,偏导

热门文章

  1. 弹幕视频网站的盈利模式 ——以哔哩哔哩弹幕网为例
  2. Linux网络编程——网络协议入门
  3. 拍照应用竞争升级,坐拥15亿用户的美图如何打好防御战?
  4. 开源机器学习流水线(Pipeline)工具调研(MLOps)
  5. InnoDB 离线转储工具
  6. 揭秘肖特基二极管鲜为人知的秘密特性
  7. iview input blur事件
  8. 液晶显示器电源板工作原理
  9. C++ 解决rand()函数生成的随机数每次都一样的问题
  10. led显示屏十大品牌