AcWing 913. 排队打水 (排序不等式)

简介: 笔记

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


输入格式


第一行包含整数 n。


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


输出格式


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


数据范围


5.png


思路


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


证明:反证法6.png


代码


#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;
}
目录
相关文章
|
机器学习/深度学习 自然语言处理 数据挖掘
向量召回:深入评估离线体系,探索优质召回方法
向量召回:深入评估离线体系,探索优质召回方法
向量召回:深入评估离线体系,探索优质召回方法
|
存储 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
【9月更文挑战第17天】在数字化时代,网络安全和信息安全已成为我们生活中不可或缺的一部分。本文将介绍网络安全漏洞、加密技术以及安全意识等方面的知识,帮助读者更好地了解网络安全的重要性,并提供一些实用的技巧和建议来保护个人信息和数据安全。
105 1
|
索引
事件委托是什么
事件委托是什么
|
存储 人工智能 数据挖掘
Python中变量类型
Python中变量类型
92 0
|
JavaScript 小程序 前端开发
JS将时间戳转换为刚刚、N分钟前、今天几点几分、昨天几点几分等表示法
JS将时间戳转换为刚刚、N分钟前、今天几点几分、昨天几点几分等表示法
238 0
|
机器学习/深度学习 SQL 缓存
【数据库设计与实现】第6章:并发控制
并发控制设计原则事务的并发控制首先要保证并发执行的正确性,满足可序列化要求,即并发执行的结果和某种串行执行的结果是一致的,然后在满足正确性的前提下尽可能地获得最高的并发度。当然在某些业务场景下,可以适当牺牲部分正确性(即接受某些异常),从而获得更高的并发性能。并发控制大体分为悲观算法和乐观算法,为了尽可能深入了解各种算法的优缺点,本章在Oracle、MySQL的基础上增加了PostgreSQL、C
【数据库设计与实现】第6章:并发控制
|
网络协议 Docker Python
Docker 容器连接
Docker 容器连接
161 0
|
Shell 开发工具 C语言
CentOS6.9源码编译安装memcached
这篇笔记记录了在CentOS6.9中源码编译安装libevent和memcached,设置开机启动,以及telnet测试的过程
1608 0
|
SQL API Serverless
Sql之datediff的用法
sql中datediff函数的的用法
2999 0