贪心—排序不等式——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;
}
相关推荐
Darkwanderor7 小时前
什么数据量适合用什么算法
c++·算法
zc.ovo7 小时前
河北师范大学2026校赛题解(A,E,I)
c++·算法
py有趣7 小时前
力扣热门100题之环形链表
算法·leetcode·链表
py有趣7 小时前
力扣热门100题之回文链表
算法·leetcode·链表
月落归舟9 小时前
帮你从算法的角度来认识二叉树---(二)
算法·二叉树
SilentSlot10 小时前
【数据结构】Hash
数据结构·算法·哈希算法
样例过了就是过了11 小时前
LeetCode热题100 柱状图中最大的矩形
数据结构·c++·算法·leetcode
wsoz11 小时前
Leetcode哈希-day1
算法·leetcode·哈希算法
阿Y加油吧11 小时前
LeetCode 二叉搜索树双神题通关!有序数组转平衡 BST + 验证 BST,小白递归一把梭
java·算法·leetcode