贪心—排序不等式——acwing

题目:排队打水

913. 排队打水 - AcWing题库

分析

题意,所有人等待时间之和最小。

当第一个人打水,后面所有人都在等待。

贪心:要让所有人等待时间之和最小,每次都得取最小。

三种存储方式均可以,目的使每次都能取最小就好:

  • 1.vector数组,sort排序
  • 2.multiset 自动排序
  • 3.priority_queue<int,vector<int>,greater<int>> 小根堆

代码

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;

multiset<int> s;

int main() {
    int n;
    cin >> n;
    for(int i = 0; i < n; i ++) {
        int x; cin >> x;
        s.insert(x);
    }
    
    long long res = 0;
    for(int i = 1; i < n; i ++) {
        set<int>::iterator it = s.begin();
        res += (*it)*(n-i);
        s.erase(s.begin());
    }
    
    cout << res << endl;
    return 0;
}
相关推荐
琪蘤20 小时前
点胶换阀高度标定计算说明
算法
handler0120 小时前
算法:查并集
开发语言·数据结构·c++·笔记·学习·算法·c
plus4s20 小时前
3月19日(进阶10)
算法
Trouvaille ~20 小时前
【优选算法篇】快速排序模型——从数组划分到快速选择
算法·leetcode·青少年编程·面试·蓝桥杯·快速排序·基础入门
Wect20 小时前
LeetCode 918. 环形子数组的最大和:两种解法详解
前端·算法·typescript
比昨天多敲两行20 小时前
C++ Lsit
开发语言·c++·算法
我爱C编程20 小时前
基于OMP正交匹配追踪和稀疏字典构造的杂波谱恢复算法matlab仿真
算法·matlab·omp·正交匹配追踪·稀疏字典构造·杂波谱恢复
云青黛20 小时前
ReAct(推理与行动)框架
python·算法
im_AMBER21 小时前
Leetcode 142 将有序数组转换为二叉搜索树 | 排序链表
算法·leetcode
码农三叔21 小时前
(10-5-01)大模型时代的人形机器人感知:基于RoboBrain大模型的人形机器人通用智能感知系统(1)构建模型
人工智能·算法·机器人·人形机器人