zoukankan      html  css  js  c++  java
  • luogu4181 [USACO18JAN]Rental Service (贪心)

    我们要出租的话,一定是出租产奶量最少的牛

    那我们就看出租多少头牛(其他的卖奶)的时候答案最大就可以了。

    (注意N有可能小于R)

     1 #include<bits/stdc++.h>
     2 #define ll long long
     3 #define pa pair<int,int>
     4 using namespace std;
     5 const int maxn=100010;
     6 
     7 inline ll rd(){
     8     ll x=0;char c=getchar();
     9     while(c<'0'||c>'9') c=getchar();
    10     while(c>='0'&&c<='9') x=x*10+c-'0',c=getchar();
    11     return x;
    12 }
    13 
    14 int N,M,R,C[maxn],S[maxn];
    15 pa PQ[maxn];
    16 ll ans,tmp,tmp2;
    17 
    18 inline bool cmp(int a,int b){return a>b;}
    19 inline bool cmp2(pa a,pa b){return a>b;}
    20 
    21 int main(){
    22     int i,j,k;
    23     N=rd(),M=rd(),R=rd();
    24     for(i=1;i<=N;i++) C[i]=rd();
    25     for(i=1;i<=M;i++) PQ[i].second=rd(),PQ[i].first=rd();
    26     for(i=1;i<=R;i++) S[i]=rd();
    27     sort(C+1,C+N+1,cmp);sort(PQ+1,PQ+M+1,cmp2);sort(S+1,S+R+1,cmp);
    28     R=min(N,R);for(i=1;i<=R;i++) tmp2+=S[i];
    29     for(i=0,j=1;i<=N;i++){
    30         for(;j<=M&&PQ[j].second<C[i];j++)
    31             tmp+=1LL*PQ[j].first*PQ[j].second,C[i]-=PQ[j].second;
    32         tmp+=1LL*PQ[j].first*C[i],PQ[j].second-=C[i];
    33         ans=max(ans,tmp+tmp2);tmp2-=S[N-i];
    34     }printf("%lld
    ",ans);
    35 }
  • 相关阅读:
    杭电1075
    杭电1016深度搜索问题
    杭电1015
    stringstream
    向量的点乘和叉乘
    杭电1010
    FCKEditor2.6.3 配置
    JQuery实现全选 与 批量删除
    JQuery实现下拉框的选择 与当CheckBox为服务器控件时如何获取值的操作,实现全选与删除
    JS 对GridView的一些操作
  • 原文地址:https://www.cnblogs.com/Ressed/p/9661806.html
Copyright © 2011-2022 走看看