zoukankan      html  css  js  c++  java
  • Facer帮父亲

    题目背景

    Facer可是一个孝顺的孩纸呦

    题目描述

    Facer的父亲是一名经理,现在总是垂头丧气的。

    Facer问父亲,怎么啦?父亲说,公司出了点问题啊。

    公司管理着N个风景点,每个风景点都有不少人来参观。

    可是现在!人民投诉票价太高了,他不得不调整票价

    具体来说,第i个景点如果票价是x,来的人数就是max( (ai - bi * x),0 )[收益自己算好伐]

    你需要分配每个景点的门票,使得每个景点门票总和不超过k,且最大化收益

    求最大的收益

    输入输出格式

    输入格式:

    第一行N , k

    接下来N行,每行ai,bi

    输出格式:

    一行,最大的收益

    输入输出样例

    输入样例#1: 复制
    2 4
    50 2
    40 1
    输出样例#1: 复制
    171

    说明

    样例解释:

    景点1票价3,景点2票价1

    景点1人数:50 - 3*2 = 44 票价 :3 收益:132

    景点2人数 : 40 - 1*1 = 39 票价 : 1 收益:39

    总收益171 最大

    #include<bits/stdc++.h>
    #define REP(i, a, b) for(int i = (a); i <= (b); ++ i)
    #define REP(j, a, b) for(int j = (a); j <= (b); ++ j)
    #define PER(i, a, b) for(int i = (a); i >= (b); -- i)
    using namespace std;
    typedef long long ll;
    const int maxn=2e6+666;
    template <class T>
    inline void rd(T &ret){
        char c;
        ret = 0;
        while ((c = getchar()) < '0' || c > '9');
        while (c >= '0' && c <= '9'){
            ret = ret * 10 + (c - '0'), c = getchar();
        }
    }
    int n,k,s,t;
    ll ans;
    struct node{
          ll a,b,x,last;
          bool operator<(const node& tmp)const{
               return a*(x+1)-b*(x+1)*(x+1)-last<tmp.a*(tmp.x+1)-tmp.b*(tmp.x+1)*(tmp.x+1)-tmp.last;
          }
    }p[maxn];
    priority_queue<node>q;
    int main(){
        rd(n),rd(k);
        REP(i,1,n){
            rd(s),rd(t);
            q.push(node{s,t,0,0});
        }
        while(!q.empty()&&k--){
             node tmp=q.top();
             q.pop();
             int e=tmp.a*(tmp.x+1)-tmp.b*(tmp.x+1)*(tmp.x+1)-tmp.last;
             if(e<=0)break;
             tmp.last+=e;
             tmp.x++;
             ans+=e;
             q.push(tmp);
        }
        cout<<ans<<endl;
        return 0;
    }
  • 相关阅读:
    最优比率环 SPFA+二分
    严格次小生成树
    SPFA判断负环BFS+DFS
    poj 1149 PIGS 网络流-最大流 建图理解
    9.20开始的停课日常
    Speed
    [BZOJ4827][Hnoi2017]礼物(FFT)
    中山纪念中学集训日志
    [POJ1151][HDU1542]Atlantis(线段树,扫描线)
    [BZOJ2002][洛谷P3203][Hnoi2010]Bounce 弹飞绵羊(LCT维护链长)
  • 原文地址:https://www.cnblogs.com/czy-power/p/10413988.html
Copyright © 2011-2022 走看看