传送门

按理说想到转化问题之后就不难了吧,可是我还是不会写

一个很容易想到的转化就是差分,将银币数和铜币数都减去金币数,这样就转化为\(x+y+z\)个钱币选\(y\)个银币和\(z\)个铜币的最大数量了

然后我这个菜逼就不会做了

设总钱币数为\(n\),银币\(x[i]\)个,铜币\(y[i]\)个,就可以按\(x[i]-y[i]\)排序

然后很显然的就是一定是前\(k\)个选银币,后\(n-k\)个选铜币(显而易见的贪心)

枚举\(k\),用一个堆来维护就好了

代码:

#include<cstdio>
#include<algorithm>
#include<cstring>
#include<iostream>
#include<queue>
using namespace std;
void read(int &x){
char ch;bool ok;
for(ok=0,ch=getchar();!isdigit(ch);ch=getchar())if(ch=='-')ok=1;
for(x=0;isdigit(ch);x=x*10+ch-'0',ch=getchar());if(ok)x=-x;
}
#define rg register
const int maxn=1e5+10;
int x,y,z,n;long long ans,sum[maxn],num;
struct oo{int x,y;}a[maxn];
bool cmp(oo a,oo b){return a.x-a.y<b.x-b.y;}
priority_queue<int,vector<int>,greater<int> >q;
int main(){
read(x),read(y),read(z),n=x+y+z;
for(rg int i=1,u,v,w;i<=n;i++){
read(u),read(v),read(w);
num+=u,v-=u,w-=u;
a[i].x=v,a[i].y=w;
}
sort(a+1,a+n+1,cmp);long long now=0;
for(rg int i=1;i<=z;i++)now+=a[i].y,q.push(a[i].y);
for(rg int i=z+1;i<=n;i++){
sum[i-1]=now,q.push(a[i].y);
now+=a[i].y,now-=q.top();q.pop();
}
sum[n]=now;
while(!q.empty())q.pop();now=0;
for(rg int i=n;i>=n-y+1;i--)now+=a[i].x,q.push(a[i].x);
for(rg int i=n-y;i>=z;i--){
ans=max(ans,now+sum[i]+num),q.push(a[i].x);
now+=a[i].x,now-=q.top();q.pop();
}
printf("%lld\n",ans);
}

最新文章

  1. pwnable echo1
  2. Jquery分页功能
  3. 去掉开始菜单中新装程序的红色标记【Windows】
  4. ArcGIS使用Python脚本工具
  5. git报错 error: cannot stat ‘file’: Permission denied
  6. Jmeter使用之常用函数介绍
  7. 基于SSH的数据库中图片的读写
  8. android ADT 设置编辑字体
  9. Docker 总结
  10. URI和URL差别以及相对路径和绝对路径的差别
  11. 1060. Are They Equal (25)
  12. 华为机试题【10】-求数字基root
  13. C# - 设计模式目录
  14. Python基础(六)
  15. Github简介
  16. C#字符串string以及相关内置函数
  17. 指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配
  18. rap 部署
  19. (二)swagger-springmvc
  20. android Butter Knife 使用详解

热门文章

  1. poj-2478 Farey Sequence(dp,欧拉函数)
  2. tensorflow训练验证码识别模型
  3. 如何用Mendeley引用目标期刊要求的参考文献格式
  4. Linux下用FFMPEG采集usb摄像头到RTMP
  5. bzoj 2631: tree link-cut-tree
  6. html之ajax
  7. 愚人的linux内核2440移植札记(超曲折版)
  8. k8s 基础 docker-ce 安装(注k8s 的安装需要用此版docker 否则会报错 )
  9. mysql nginx redis 配置文件
  10. 项目一:第五天 1、区域数据(pinyin4j-简码,城市编码) 2、Web层代码重构(model对象,分页代码提取) 3、区域分页查询 3、分区添加功能 4、定区管理管理-添加,分页