贪心—排序不等式——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;
}
相关推荐
im_AMBER7 分钟前
Leetcode 152 被围绕的区域 | 岛屿数量
数据结构·算法·leetcode·深度优先·广度优先·图搜索算法
吕司18 分钟前
LeetCode Hot Code——最大子数组和
数据结构·算法·leetcode
XiYang-DING23 分钟前
【LeetCode】144. 二叉树的前序遍历
算法·leetcode·职场和发展
WolfGang00732128 分钟前
代码随想录算法训练营 Day28 | 动态规划 part01
算法·动态规划
光电笑映1 小时前
STL 源码解密:unordered 系列容器的底层复用与哈希策略
算法·哈希算法·散列表
6Hzlia1 小时前
【Hot 100 刷题计划】 LeetCode 215. 数组中的第K个最大元素 | C++ 快速选择与堆排序题解
c++·算法·leetcode
小白菜又菜1 小时前
Leetcode 3070. Count Submatrices with Top-Left Element and Sum Less Than k
算法·leetcode·职场和发展
笨笨饿1 小时前
32_复变函数在工程中实际应用区别于联系
linux·服务器·c语言·人工智能·单片机·算法·学习方法
会编程的土豆1 小时前
【数据结构与算法】拓扑排序2
数据结构·算法·leetcode
Boop_wu1 小时前
[Java 算法] 栈
java·开发语言·算法