贪心—排序不等式——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;
}
相关推荐
载数而行5206 小时前
算法集训1:模拟,枚举,错误分析,前缀和,差分
算法
hehelm7 小时前
vector模拟实现
前端·javascript·算法
Tina学编程8 小时前
[HOT 100]今日一练------划分字母区间
算法·hot 100
RTC老炮8 小时前
RaptorQ前向纠错算法架构分析
网络·算法·架构·webrtc
故事和你918 小时前
洛谷-数据结构1-1-线性表2
开发语言·数据结构·算法·动态规划·图论
m0_555762908 小时前
从原始信号到IQ图的数学公式推导
算法
靠沿8 小时前
【递归、搜索与回溯算法】专题四——综合练习
算法·深度优先
北顾笙9808 小时前
day26-数据结构力扣
数据结构·算法·leetcode
德索精密工业-胡工8 小时前
M12连接器的增强技术:在高电磁干扰的车间里它是如何“活下来”的?
算法
ZenosDoron8 小时前
函数形参传数组
java·jvm·算法