N头奶牛,价格Pi,K张优惠券,优惠券购买降为Ci,不超过M的钱最多可买多少奶牛

先将c值k小的加入,将它们省下的钱加入优先队列(省下的钱由少到多),在将k+1-n用p排序,再逐个与优先队列中弹出的比较

若省下的钱更多则赎回优惠券买这个(c+以前的p-c),否则买下全票p

不过这题的贪心其实有些奇怪,还是不太能想来

#include <bits/stdc++.h>
#define rep(i,j,k) for(int i=j;i<=k;i++)
#define N 50010
#define inf 0x3fffffff
#define LL long long
using namespace std;
inline LL read(){
LL x=,f=;char ch=getchar();
while(!isdigit(ch)){if(ch=='-')f=-;ch=getchar();}
while(isdigit(ch)){x=(x<<)+(x<<)+(ch^);ch=getchar();}
return x*f;}
struct nd{int p,c,k;}a[N];int n,k;LL m,sum;
priority_queue<int,vector<int>,greater<int> >q;
bool cmp1(nd a,nd b){return a.c<b.c;}
bool cmp2(nd a,nd b){return a.p<b.p;}
int main(){
// freopen("2590.in","r",stdin);
// freopen("2590.out","w",stdout);
n=read(),k=read(),m=read();
rep(i,,n)a[i].p=read(),a[i].c=read(),a[i].k=a[i].p-a[i].c;
sort(a+,a++n,cmp1);rep(i,,k){
sum+=a[i].c;if(sum>m){printf("%d",i-);return ;}
if(i==n){printf("%d",n);return ;} q.push(a[i].k);}
sort(a++k,a++n,cmp2);rep(i,k+,n){
int t=q.empty()?inf:q.top();
if(a[i].k>t){sum=sum+t+a[i].c;q.pop();
q.push(a[i].k);}else sum+=a[i].p;
if(sum>m){printf("%d",i-);return ;}
if(i==n){printf("%d",n);return ;}}
return ;
}

luogu 3045 优先队列反悔/bzoj 2590的更多相关文章

  1. luogu P2617 Dynamic Rankings && bzoj 1901 (带修改区间第k大)

    链接:https://www.luogu.org/problemnew/show/P2617 思路: 如果直接在主席树上修改的话,每次修改都会对后面所有的树造成影响,一次修改的复杂度就会变成 : n* ...

  2. Luogu 2590 [ZJOI2008]树的统计 / HYSBZ 1036 [ZJOI2008]树的统计Count (树链剖分,LCA,线段树)

    Luogu 2590 [ZJOI2008]树的统计 / HYSBZ 1036 [ZJOI2008]树的统计Count (树链剖分,LCA,线段树) Description 一棵树上有n个节点,编号分别 ...

  3. BZOJ 4823 Luogu P3756 [CQOI2017]老C的方块 (网络流、最小割)

    题目链接 (Luogu) https://www.luogu.org/problem/P3756 (BZOJ) http://lydsy.com/JudgeOnline/problem.php?id= ...

  4. BZOJ 1488 Luogu P4727 [HNOI2009]图的同构 (Burnside引理、组合计数)

    题目链接 (Luogu) https://www.luogu.org/problem/P4727 (BZOJ) https://www.lydsy.com/JudgeOnline/problem.ph ...

  5. BZOJ 4555 Luogu P4091 [HEOI2016/TJOI2016]求和 (第二类斯特林数)

    题目链接 (luogu) https://www.luogu.org/problem/P4091 (bzoj) https://www.lydsy.com/JudgeOnline/problem.ph ...

  6. BZOJ 3622 Luogu P4859 已经没有什么好害怕的了 (容斥原理、DP)

    题目链接 (Luogu) https://www.luogu.org/problem/P4859 (bzoj) https://www.lydsy.com/JudgeOnline/problem.ph ...

  7. bzoj usaco 金组水题题解(2.5)

    bzoj 2197: [Usaco2011 Mar]Tree Decoration 树形dp..f[i]表示处理完以i为根的子树的最小时间. 因为一个点上可以挂无数个,所以在点i上挂东西的单位花费就是 ...

  8. [luogu3979][bzoj3083]遥远的国度

    [luogu传送门] [bzoj传送门] 题目描述 zcwwzdjn在追杀十分sb的zhx,而zhx逃入了一个遥远的国度.当zcwwzdjn准备进入遥远的国度继续追杀时,守护神RapiD阻拦了zcww ...

  9. bzoj1644 / P1649 [USACO07OCT]障碍路线Obstacle Course

    P1649 [USACO07OCT]障碍路线Obstacle Course bfs 直接上个bfs 注意luogu的题目和bzoj有不同(bzoj保证有解,还有输入格式不同). #include< ...

随机推荐

  1. hdu 1527 (威佐夫博弈)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1527 Problem Description 有两堆石子,数量任意,可以不同.游戏开始由两个人轮流取石 ...

  2. 洛谷P3396 哈希冲突

    分块还真是应用广泛啊...... 题意:求 解:以n0.5为界. 当p小于n0.5的时候,直接用p²大小的数组储存答案. 预处理n1.5,修改n0.5. 当p大于n0.5的时候,直接按照定义计算,复杂 ...

  3. 洛谷P4307 球队收益

    题意:有n个球队,m场比赛. 每个球队都已经有些胜负场次了. 每个球队的收益为Ci * wini2 - Di * losei2. 求最小可能总收益. 解: 先看出一个模型:用一流量代表一个胜场,每场比 ...

  4. A1002. A+B for Polynomials

    This time, you are supposed to find A+B where A and B are two polynomials. Input Each input file con ...

  5. 对PDF的操作

    PDF是个常见的格式,当我们需要对PDF做操作时,可以主要利用PDFbox和itext.这里主要介绍PDfbox,itext自己去 查找资料.添加pom配置. <dependency> & ...

  6. axios 使用

    <!DOCTYPE html> <html lang="en"> <head> {#导入静态文件#} {% load static %} < ...

  7. bcftools将vcf生成bgzip和index格式

    利用bcftools软件将vcf格式生成gz格式和index格式,需要用到“-Oz”和“index”命令,具体如下: /bcftools-1.8/bin/bcftools view ExAC.vcf ...

  8. RAND_MAX

    RAND_MAX 指的是 C 语言标准库 <stdlib.h> 中定义的一个宏.经预编译阶段处理后, 它展开为一个整数类型的常量表达式.RAND_MAX 是 <stdlib.h> ...

  9. Luogu P1247 取火柴游戏

    题目链接 \(Click\) \(Here\) 这个题目其实就是一个\(Nim\)游戏的简单模型.对于单个的\(Nim\)游戏(单独一堆的情况),数学归纳可证其\(SG\)函数值等于其石子个数.所以对 ...

  10. day06-(mysql)

    建表: CREATE DATABASE mysqltest2; USE mysqltest2; -- 部门表 CREATE TABLE DEPT( DEPTNO INT PRIMARY KEY, -- ...