当前位置: 首页 > news >正文

数据结构与算法学习笔记----贪心·排序不等式

数据结构与算法学习笔记----贪心·排序不等式

@@ author: 明月清了个风
@@ first publish time: 2025.4.5

ps⭐️一道很简单的题,主要是一个思路。

Acwing 913. 排队打水

[原题链接](913. 排队打水 - AcWing题库)

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 ≤ 100000 1 \le n \le 100000 1n100000

1 ≤ t i ≤ 10000 1 \le t_i \le 10000 1ti10000

思路

这一题的思路其实也很简单,根据题意可以知道后面的人要等前面所有人的取水时间,因此要取水快的先打,这样后面等的人等待时间就会更短。

代码

#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>

using namespace std;

const int N = 100010;

int n;
int a[N];

int main()
{
    cin >> n;
    
    for(int i = 0; i < n; i ++)
        cin >> a[i];
        
    sort(a, a + n);
    
    long long  res = 0;
    int x = n - 1;
    for(int i = 0; i < n; i ++)
    {
        res += a[i] * x;
        x --;
    }
    
    cout << res << endl;
    
    return 0;
}

相关文章:

  • CSS Text(文本)学习笔记
  • es基本概念
  • (蓝桥杯)岛屿个数
  • 树莓集团多方位拓展:园区服务及人才培养的协同发展
  • 博客文章:深入分析 PyMovie - 基于 Python和 MoviePy 的视频管理工具
  • YY forget password
  • 学透Spring Boot — 013. Spring Web-Flux 函数式风格的控制器
  • 用Python解锁未来交通:开发基于机器学习的流量预测系统
  • Java程序设计第1章:概述
  • LeetCode 249 解法揭秘:如何把“abc”和“bcd”分到一组?
  • 蓝桥杯2024年第十五届省赛真题-数字接龙
  • 辅助查询是根据查询到的文档片段再去生成新的查询问题
  • 解决Spring Boot Test中的ByteBuddy类缺失问题
  • 【TI MSPM0】ADC DAC学习
  • Java中的四大引用类型详解
  • 【34期获取股票数据API接口】如何用Python、Java等五种主流语言实例演示获取股票行情api接口之沪深A股当天分时成交数据及接口API说明文档
  • SpringBoot启动run方法分析
  • 配置管理:夯实软件开发与运维根基
  • 实体类设计规范
  • [Deep-ML]Transpose of a Matrix(矩阵的转置)