• [POI2012]HUR-Warehouse Store(贪心,堆)


    题意

    n天。第i天上午会进货Ai件商品,中午的时候会有顾客需要购买Bi件商品,可以选择满足顾客的要求,或是无视掉他。

    如果要满足顾客的需求,就必须要有足够的库存。问最多能够满足多少个顾客的需求。

    (n<=250000)

    题解

    一看就知道是贪心。

    我们把选择的每一天扔到一个堆里,按Bi从大到小排序。

     每一天商品能买就买。买不了就查找堆顶元素,如果堆顶元素大于Bi则弹掉堆顶,把当前Bi扔进去(等于弹出来的那天没买,当前天买了)

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 #include<cmath>
     5 #include<algorithm>
     6 #include<queue>
     7 using namespace std;
     8 const long long N=300000;
     9 struct Node{
    10     long long id,w;
    11     bool operator <(const Node &a)const{
    12         return a.w>w;
    13     }
    14 }node;
    15 priority_queue<Node> q;
    16 long long n,a[N],b[N],tot,ans,tmp,c[N];
    17 bool cmp(long long x,long long y){
    18     return x<y;
    19 }
    20 int main(){
    21     scanf("%lld",&n);
    22     for(long long i=1;i<=n;i++){
    23         scanf("%lld",&a[i]);
    24     }
    25     for(long long i=1;i<=n;i++){
    26         scanf("%lld",&b[i]);
    27     }
    28     for(long long i=1;i<=n;i++){
    29         tot+=a[i];
    30         if(b[i]<=tot){
    31             tot-=b[i];
    32             node.id=i;
    33             node.w=b[i];
    34             q.push(node);
    35             ans++;
    36         }
    37         else if(!q.empty()&&b[i]<q.top().w){
    38             node=q.top();
    39             q.pop();
    40             tot+=node.w;
    41             tot-=b[i];
    42             node.id=i;
    43             node.w=b[i];
    44             q.push(node);
    45         }
    46     }
    47     printf("%lld
    ",ans);
    48     while(!q.empty()){
    49         c[++tmp]=q.top().id;
    50         q.pop();
    51     }
    52     sort(c+1,c+1+tmp,cmp);
    53     for(long long i=1;i<=tmp;i++){
    54         printf("%lld ",c[i]);
    55     }
    56     return 0;
    57 } 
  • 相关阅读:
    第07组 Beta冲刺(1/5)
    软工实践个人总结
    SDN大作业
    第08组 Beta版本演示
    2019 SDN上机第7次作业
    第08组 Beta冲刺(5/5)
    第08组 Beta冲刺(4/5)
    第08组 Beta冲刺(3/5)
    第08组 Beta冲刺(2/5)
    2019 SDN上机第6次作业
  • 原文地址:https://www.cnblogs.com/Xu-daxia/p/9436759.html
Copyright © 2020-2023  润新知