AcWing 913. 排队打水

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

输入格式

第一行包含整数 n n n。

第二行包含 n n n 个整数,其中第 i i i 个整数表示第 i i i 个人装满水桶所花费的时间 t i t_{i} ti​

输出格式

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

数据范围

1 ≤ n ≤ 1 0 5 1 \leq n \leq 10^{5} 1≤n≤105
1 ≤ t i ≤ 1 0 4 1 \leq t_{i} \leq 10^{4} 1≤ti​≤104

思路

将时间按照从小到大的顺序排队,总时间最小

证明:反证法

​ 假设 t i > t i + 1 t_{i} > t_{i+1} ti​>ti+1​

​ 有 t i ∗ ( n − i ) + t i + 1 ∗ ( n − i − 1 ) t_{i}*(n-i) + t_{i+1}*(n-i-1) ti​∗(n−i)+ti+1​∗(n−i−1)①

​ 交换 t i t_{i} ti​和 t i + 1 t_{i+1} ti+1​ 有 t i + 1 ∗ ( n − i ) + t i ∗ ( n − i − 1 ) t_{i+1}*(n-i)+t_{i}*(n-i-1) ti+1​∗(n−i)+ti​∗(n−i−1)②

①-②得 t i − t i + 1 t_{i} - t_{i+1} ti​−ti+1​ 而 t i > t i + 1 t_{i} > t_{i+1} ti​>ti+1​ ∴ \therefore ∴交换后总时间变小

若想使总时间最小 则 t i t_{i} ti​应该从小到大排序 即 t i < t i + 1 t_{i}<t_{i+1} ti​<ti+1​

代码

#include<bits/stdc++.h>using namespace std;
typedef long long LL;
const int N = 100010;
int a[N], n;int main() {scanf("%d", &n);for (int i = 0; i < n; ++i) {scanf("%d", &a[i]);}sort(a, a + n);LL res = 0;for (int i = 0; i < n; ++i)res += a[i] * (n - i - 1);cout << res << endl;return 0;
}

AcWing 913. 排队打水 (排序不等式)相关推荐

  1. 排序不等式 AcWing 913. 排队打水

    排序不等式 AcWing 913. 排队打水 原题链接 AcWing 913. 排队打水 算法标签 贪心 排序不等式 思路 1 将nnn个人装满水桶所需的时间从小到大进行排序 2 从前往后枚举每一个人 ...

  2. 贪心:排队打水—排序不等式

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

  3. [排序不等式] 排队打水(排序不等式+贪心)

    文章目录 0. 前言 1. 排序不等式+贪心 0. 前言 经典的排序不等式问题,也是一个简单的小学数奥问题. 1. 排序不等式+贪心 913. 排队打水 贪心思路: 让最墨迹的人最后打水,即从小到大排 ...

  4. 贪心:Huffman树(合并果子)、排序不等式(排队打水)

    Huffman树 AcWing 148. 合并果子 在一个果园里,达达已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆. 达达决定把所有的果子合成一堆. 每一次合并,达达可以把两堆果子合并 ...

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

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

  6. 【模板题】贪心-排序不等式

    一.AcWing 913. 排队打水 [题目描述] 有nnn个人排队到111个水龙头处打水,第iii个人装满水桶所需的时间是tit_iti​,请问如何安排他们的打水顺序才能使所有人的等待时间之和最小? ...

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

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

  8. 贪心——排序不等式——排队打水

    排队打水 总共n人 T=t1*(n-1)+t2*(n-2)+--+tn 按从小到大的顺序排序,等待时间最小 #include <iostream> #include <algorit ...

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

    第六章贪心(三):排序不等式.绝对值不等式.推公式 AcWing 913:排队打水 题目 有 n 个人排队到 1 个水龙头处打水,第 i 个人装满水桶所需的时间是 ti,请问如何安排他们的打水顺序才能 ...

最新文章

  1. DataGrid删除确认及Item颜色交替
  2. 浅谈“领域驱动设计”
  3. ORACLE 计算时间相减间隔
  4. 图像文档变形恢复DewarpNet
  5. 51单片机之串口通讯应用实例(逻辑分析仪调试)
  6. 配置php7.2.4支持swoole2.1.1扩展
  7. 用js来实现那些数据结构01(数组篇01-数组的增删)
  8. 任意目录下启动tomcat
  9. 【生信进阶练习1000days】day15-SRAdbV2包
  10. 最详细的Android SDK下载安装及配置教程
  11. 【MySQL】exists与in的比较
  12. 总结js中关于路径的写法
  13. 计算机国培目标与计划,2018国培个人研修计划
  14. android 程序闪退 log,应用闪退log日志。。
  15. Camera360 一款强大的手机拍照必备软件
  16. c语言响铃编程,C语言C加加编程新手快速入门基础学习
  17. 淘宝 聚划算 整点免费 支付宝延时时间1秒
  18. c++最佳情侣身高差(来测一测)
  19. xml配置php虚拟路径,apache增加虚拟路径和映射中文路径
  20. 怎么删除w7桌面计算机图标,Win7系统桌面上图标删不掉怎么办?

热门文章

  1. sklearn之svm-葡萄酒质量预测(10)
  2. 斗鱼直播行业名列前茅 泛娱乐布局成效凸显
  3. 梅特卡夫定律与网络价值
  4. 简简的语法13——副词对动词就像形容词对名词一样
  5. 【OCR】文字检测:传统算法、CTPN、EAST
  6. 马克斯cms,马克斯cms模板,马克斯cms网站开发
  7. 卷积神经网络(CNN)相关知识以及数学推导
  8. video标签无法播放视频
  9. linux 内核 屏幕 驱动,Linux液晶显示屏驱动设计
  10. VolumeUI音量调节对话框