acwing 913. 排队打水和最短时间处理联系

简介: acwing 913. 排队打水和最短时间处理联系

acwing 913. 排队打水

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

输入格式

第一行包含整数n

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

输出格式

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

数据范围
image.png

image.png

输入样例:

7
3 6 1 4 2 5 7

输出样例:

56

思考过程/解题步骤:

这题考察的是一个贪心的思想,需要我们如何选取来达到最优的等待时间即最短的等待时间

image.png

下面给出这种贪心猜测的证明:

反证法:

image.png

这种思想可以额外引申到操作系统的进程调度算法:最短作业优先处理。这样子我们就可以很清楚的知道假设我们只想要得到最短等待时间之和这一项指标的话,那么我们就可以参照这里的思想去理解。同时,平时考试的时候为什么大部分人需要采取的策略是先易后难,跟这里的思想也许也有一定的关系,更少的空白等待思考时间。还有这里给了我一个启发,生活中如果遇到多件不能并发处理并且都不是很紧急但是又都很有必要做的事情,我以后就要根据时间长短优先处理能够先处理的,这样可以减少空白等待的时间。

import java.util.*;
import java.io.*;
public class Main {
    public static void main(String[] args) throws IOException{
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(System.out));
        int n = Integer.parseInt(String.valueOf(reader.readLine()));
        int[] arr = new int[n];
        String[] num = reader.readLine().split(" ");
        for (int i = 0; i < n; i++) {
            arr[i] = Integer.parseInt(num[i]);
        }
        // 先排序
        Arrays.sort(arr);
        long res = 0;
        for (int i = 0; i < n; i++) {
            // 第i名打水的后面会有n-i-1个等待的,因此等待的时间就是arr[i] * (n-i-1)
            res += (arr[i] * (n-i-1));
        }
        writer.write(res + "\n");
        writer.flush();
        writer.close();
        reader.close();
    }
}


相关文章
|
4月前
|
CDN
2026最新阿里云CDN收费标准:不同计费模式价格表(基础服务费和增值服务费用整理)
阿里云CDN费用分基础费(必选)和增值费(按需使用)。基础费支持按流量、带宽峰值或月结95峰值三种计费模式,默认按流量阶梯计价(中国内地低至0.15元/GB);可购资源包享优惠。增值费含HTTPS、QUIC、WAF、实时日志等,仅启用才计费。
1104 10
|
传感器 虚拟化
故障案例-ESXI6.5主机无法发生重启,并有发生网卡无故UP DOWN的事件
VSAN环境下的一台ESXI6.5主机无法发生重启,并发生网卡无故UP DOWN的事件.以下是故障分析过程和解决方法
3615 0
|
5月前
|
存储 NoSQL 关系型数据库
Python 持久层开发:从文件到数据库的实践指南
Python持久层开发覆盖全场景需求,从轻量文件(TXT/CSV/JSON)到关系型数据库(SQLite/MySQL/PostgreSQL),再到非关系型数据库(MongoDB/Redis),结合ORM工具,按需选型可实现高效、可靠的数据存储与访问,适配从小工具到企业级系统的各类应用。
|
12月前
|
测试技术 定位技术
【分享】实测AiPy多模型!酒店可行性报告对比
文章来自微信公众号“蚂蚁逛高速”,作者蚁大彪。本文测试了开源工具AiPy v0.1.28集成的三大模型(阿里千问、DeepSeek、腾讯混元)在生成商业分析报告上的表现。任务是为成都天府三街的情侣酒店项目提供可行性分析。结果表明,阿里千问报告最精美且数据详实,但耗时最长;DeepSeek报告简单快速,但缺乏具体数据;腾讯混元虽尝试生成图表,但内容缺失严重。
【分享】实测AiPy多模型!酒店可行性报告对比
|
机器学习/深度学习 人工智能 自然语言处理
【机器学习】GLM4-9B-Chat大模型/GLM-4V-9B多模态大模型概述、原理及推理实战
【机器学习】GLM4-9B-Chat大模型/GLM-4V-9B多模态大模型概述、原理及推理实战
2550 0
|
算法 数据挖掘 Python
深入理解Python中的递归文件夹读取操作
【8月更文挑战第27天】
442 1
|
算法 人机交互 vr&ar
VR游戏设计中的用户体验考虑:技术深度解析
【8月更文挑战第24天】VR游戏设计是一个复杂而充满挑战的过程,它要求开发者在视觉体验、交互设计、音效与反馈、用户引导与界面设计以及性能优化等方面进行全面考虑。通过不断探索和实践,我们可以为玩家提供更加沉浸、自然和令人满足的VR游戏体验。随着技术的不断进步和应用场景的不断拓展,VR游戏的未来充满了无限可能。
阿里云域名注册创建新信息模板审核多长时间?
在阿里云注册域名,域名所有者中没有信息模板,新创建的信息模板已经提交,有点着急,什么时候可以审核通过?大约需要20分钟左右
1756 0
阿里云域名注册创建新信息模板审核多长时间?
|
Linux C语言 Python
自制操作系统日记(5):跳转到C语言执行
在上篇中切换了CPU的64位模式,但后面是失败的,并没有真正切换,也没有相关的验证代码,本篇中终于修正并执行了C代码
|
机器学习/深度学习 大数据 数据挖掘
向量、矩阵概念|学习笔记
快速学习向量、矩阵概念
向量、矩阵概念|学习笔记