贪心—排序不等式——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;
}
相关推荐
八月五6 分钟前
LeetCode—74. 搜索二维矩阵(中等)
算法·leetcode·矩阵
越努力^越幸运1 小时前
类和对象--中--运算符重载、日期类实现(重要)
开发语言·c++·算法
云卓SKYDROID2 小时前
无人机:智能飞行控制系统技术与算法
科技·算法·无人机·科普·云卓科技
孑么2 小时前
力扣 二叉树的中序遍历
java·算法·leetcode·职场和发展
Theodore_10222 小时前
10 设计模式之装饰模式
java·开发语言·算法·设计模式·java-ee·装饰模式
colman wang2 小时前
C语言刷题笔记3(7)
c语言·笔记·算法
laufing3 小时前
OD E卷 - 实现【流浪地球】
python·算法·逻辑模拟
pursuit_csdn3 小时前
力扣 48. 旋转图像
数据结构·算法·leetcode·矩阵·力扣
Reeeeeeeeeee-4 小时前
[MRCTF2020]Transform
c语言·开发语言·汇编·c++·算法