1 条题解

  • 0
    @ 2025-10-8 16:56:24
    #include<bits/stdc++.h>
    using namespace std;
    const int N=1e4+10;
    struct node{int x,y;}a[N];
    bool cmp(node n1,node n2){ return n1.y<n2.y;}
    priority_queue<int,vector<int>,greater<int>>Q,q;
    int main()
    {
        int n;
        while(scanf("%d",&n)!=EOF)
        {
            for(int i=1;i<=n;i++)scanf("%d%d",&a[i].x,&a[i].y);
            sort(a+1,a+n+1,cmp);
            int ans=0;
            Q=q;
            for(int i=1;i<=n;i++)
            {
                ans+=a[i].x;
                Q.push(a[i].x);
                if(Q.size()>a[i].y)
                {
                    ans-=Q.top();Q.pop();
                }
            }
            printf("%d\n",ans);
        }
        return 0;
    }
    
    • 1

    *【反悔贪心】超市[UVA1316] Supermarket

    信息

    ID
    1323
    时间
    1000ms
    内存
    64MiB
    难度
    6
    标签
    递交数
    237
    已通过
    80
    上传者