贪心—排序不等式——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;
}
相关推荐
样例过了就是过了17 小时前
LeetCode热题100 子集
数据结构·c++·算法·leetcode·dfs
I_LPL17 小时前
day52 代码随想录算法训练营 图论专题5
java·算法·图论·并查集
jing-ya17 小时前
day 49 图论part1
算法·深度优先·图论
想吃火锅100517 小时前
【leetcode】98.验证二叉搜索树
算法·leetcode·职场和发展
一叶落43817 小时前
【LeetCode 172】阶乘后的零(C语言详解 | 数学规律 + 对数时间复杂度)
c语言·数据结构·算法·leetcode·动态规划
自信1504130575917 小时前
数据结构初阶——二叉树之——堆的实现
c语言·数据结构·算法
!停17 小时前
数据结构算法—归并排序
数据结构·算法
骇客野人17 小时前
机器学习线性回归算法是入门机器学习理解人工智能模型很好示例
人工智能·算法·机器学习
Trouvaille ~17 小时前
【贪心算法】专题(三):排序、博弈与区间的贪婪法则
c++·算法·leetcode·青少年编程·面试·贪心算法·蓝桥杯
Sakinol#17 小时前
Leetcode Hot 100 —— 二叉树 part02
算法·leetcode