首页 > 其他分享 >Supermarket(贪心)

Supermarket(贪心)

时间:2024-09-16 21:01:53浏览次数:1  
标签:typedef cout int long Supermarket define 贪心

#include<bits/stdc++.h>
using namespace std;
#define x first
#define y second
typedef long long ll;
typedef pair<int,int> PII;
void solve()
{
    int n;
    while(cin>>n)
    {
        vector<PII> a(n);
        for(int i=0;i<n;++i) cin>>a[i].y>>a[i].x;
        sort(a.begin(),a.end());
        //对于前t天选择可以选择的最大t个物品
        //建立小根堆,若当前物品的过期日期<=t则判断是否更换堆顶
        //否则直接插入堆
        priority_queue<int,vector<int>,greater<int>> q;
        //t表示已经考虑完了多少天
        int t = 0;
        for(int i=0;i<n;++i)
        {
            if(a[i].x == t)
            {
                if(a[i].y > q.top()) 
                {
                    //cout<<"1. "<<a[i].y<<' '<<q.top()<<'\n';
                    q.pop();
                    q.push(a[i].y);
                }
            }
            else if(a[i].x > t) 
            {
                //cout<<"2. "<<a[i].y<<'\n';
                q.push(a[i].y), t++;
            }
        }
        ll res = 0;
        while(!q.empty())
        {
            res += q.top();
            //cout<<"res "<<q.top()<<'\n';
            q.pop();
        }
        cout<<res<<'\n';
    }
}
int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    int T = 1;
    //cin>>T;
    while(T--)
    {
        solve();
    }
}

标签:typedef,cout,int,long,Supermarket,define,贪心
From: https://www.cnblogs.com/ruoye123456/p/18416591

相关文章

  • 贪心算法(算法详解+模板+例题)
    1.贪心是什么贪心算法(GreedyAlgorithm)是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择,从而希望导致结果是全局最好的策略。虽然这种策略并不保证一定能得到全局最优解,但在许多情况下,它能提供近似最优解,而且计算效率高。贪心算法通常适用于那些具有“最优......
  • 算法入门-贪心1
    第八部分:贪心409.最长回文串(简单)给定一个包含大写字母和小写字母的字符串s,返回通过这些字母构造成的最长的回文串的长度。在构造过程中,请注意区分大小写。比如"Aa"不能当做一个回文字符串。示例1:输入:s="abccccdd"输出:7解释:我们可以构造的最长的回文串是"......
  • dfs与贪心算法——洛谷5194
    问题描述:有n个砝码,将砝码从大到小排列,从第三个砝码开始,所有砝码均大于其前两个砝码之和,问怎样的砝码组合才可以组合出不大于c的最大重量,输出该重量输入:第一行输入两个个整数N,c,代表有N个砝码,第二行输入N个砝码的质量输出:不大于c的最大重量题目分析:要找到不大于c的最大重量,要......
  • C#编程中的贪心策略:找零钱问题
    C#中的贪心算法是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择,从而希望导致结果是全局最好或最优的算法。贪心算法并不保证总是能得到全局最优解,但它通常实现简单,且对于很多问题来说,其解是足够好的,或者可以证明贪心选择能导致全局最优解。下面是一个使......
  • 【每日一题】LeetCode 2576.求出最多标记下标(贪心、数组、双指针、二分查找、排序)
    【每日一题】LeetCode2576.求出最多标记下标(贪心、数组、双指针、二分查找、排序)题目描述给定一个整数数组nums,数组下标从0开始。你需要执行以下操作,直到无法再执行为止:选择两个互不相同且未标记的下标i和j。满足条件2*nums[i]<=nums[j],则标记下标i和j。......
  • 2024 牛客多校第三场(倍增,贪心)
    2024牛客多校第三场(倍增,贪心)J-RiggedGames题面:给出一个\(01\)字符串\(s\),代表小局比赛的输赢。求大局Bo(\(2b-1\)),小局Bo(\(2a-1\))的结果。求出\(s\)的每一个位置出发的输赢结果。数据范围:\(n,a,b\;(1≤n,a,b≤1e5)\)我和正解的思考相同的部分......
  • 贪心算法day28|买卖股票的最佳时机、55. 跳跃游戏、1005. K 次取反后最大化的数组和
    贪心算法day28|买卖股票的最佳时机、55.跳跃游戏、1005.K次取反后最大化的数组和122.买卖股票的最佳时机II55.跳跃游戏1005.K次取反后最大化的数组和122.买卖股票的最佳时机II给你一个整数数组prices,其中prices[i]表示某支股票第i天的价格。在每一......
  • 贪心-用最少的箭射球
    一支弓箭可以沿着x轴从不同点完全垂直地射出。在坐标x处射出一支箭,若有一个气球的直径的开始和结束坐标为xstart,xend,且满足 xstart ≤x≤xend,则该气球会被引爆。可以射出的弓箭的数量没有限制。弓箭一旦被射出之后,可以无限地前进。我们想找到使得所有气球全部被引......
  • 数组与贪心算法——179、56、57、228(2简2中)
    179.最大数(简单)给定一组非负整数 nums,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数。注意:输出结果可能非常大,所以你需要返回一个字符串而不是整数。解法一、自定义比较器大的排前面然后进行一个比较jpg一开始想的其实是字典序,但是测试里就败了。例如3,3......
  • 数组与贪心算法——452、435、646、406、169(1简4中)
    452.用最少数量的箭引爆气球(中等)有一些球形气球贴在一堵用XY平面表示的墙面上。墙面上的气球记录在整数数组 points ,其中points[i]=[xstart,xend] 表示水平直径在 xstart 和 xend之间的气球。你不知道气球的确切y坐标。一支弓箭可以沿着x轴从不同点 完全......