一共有 X + Y + Z X+Y+Z X+Y+Z 个人,每个人有 A i A_i Ai​ 个金钢镚, B i B_i Bi​ 个银钢镚, C i C_i Ci​ 个铜钢镚,你现在要从 X X X 个人那里拿走他们的金钢镚,从 Y Y Y 个人那里拿走他们的银钢镚,从 Z Z Z 个人那里拿走他们的铜钢镚。每个人被收且只被收了一次钢镚,那么你最多能拿到多少钢镚呢?

第一行三个正整数,分别为 X , Y , Z X,Y,Z X,Y,Z

之后 X + Y + Z X+Y+Z X+Y+Z 行,每行三个非负整数 A i , B i , C i A_i,B_i,C_i Ai​,Bi​,Ci​

一行,表示最多能拿到的钢镚数目

样例输入1

1 2 1
2 4 4
3 2 1
7 6 7
5 2 3

样例输出1

18

样例输入2

6 2 4
33189 87907 277349742
71616 46764 575306520
8801 53151 327161251
58589 4337 796697686
66854 17565 289910583
50598 35195 478112689
13919 88414 103962455
7953 69657 699253752
44255 98144 468443709
2332 42580 752437097
39752 19060 845062869
60126 74101 382963164

样例输出2

3093929975

A i , B i , C i ≤ 1 0 9 A_i,B_i,C_i \le 10^9 Ai​,Bi​,Ci​≤109

编号 X + Y + Z ≤ X+Y+Z \le X+Y+Z≤ 特殊性质
1 − 4 1-4 1−4 200000 200000 200000 Z = 0 Z=0 Z=0
5 − 8 5-8 5−8 1000 1000 1000
9 − 20 9-20 9−20 200000 200000 200000

noi2019 集训 5.6

①模拟费用流

#include<bits/stdc++.h>
#define N 200005
typedef long long ll;using namespace std;
const ll inf=1e15;
inline int read(){int x=0,f=1;char s=getchar();while(s<'0'||s>'9'){if(s=='-')f=-1;s=getchar();}while(s>='0'&&s<='9'){x=(x<<3)+(x<<1)+s-'0';s=getchar();}return x*f;
}
ll w[N][4],li[4],be[N];
priority_queue<pair<ll, int> > q[4][4];
int sz[4];
ll ans;
inline void ins(int x,int j){sz[j]++;be[x]=j;for(int k=1;k<=3;++k)if(k!=j){q[j][k].push(make_pair(w[x][k]-w[x][j],x));}
}
inline void del(int x,int j,int k){sz[j]--;be[x]=0;ins(x,k);
}
int main(){//  freopen("gangbeng.in","r",stdin);
//  freopen("gangbeng.out","w",stdout);//  freopen("data.in","r",stdin);//  freopen("gangbeng.out","w",stdout);int x=read(),y=read(),z=read(),n=x+y+z;li[1]=x,li[2]=y,li[3]=z;for(int i=1;i<=n;++i)for(int j=1;j<=3;++j)w[i][j]=read();for(int i=1;i<=n;++i){ll maxn=-inf,now[4]={-inf,-inf,-inf,-inf};int res=0,flag=1;for(int j=1;j<=3;++j){for(int k=1;k<=3;++k)if(k!=j){while(!q[j][k].empty()&&be[q[j][k].top().second]!=j)q[j][k].pop();}}//cout<<1<<endl;//cout<<i<<" "<<sz[1]<<" "<<sz[2]<<" "<<sz[3]<<endl;for(int j=1;j<=3;++j){if(!li[j])continue;if(sz[j]<li[j]){now[j]=w[i][j];}else{for(int k=1;k<=3;++k){if(!li[k])continue;if(k==j)continue;res=1;while(res==j||res==k)++res;if(sz[k]<li[k]){//if(q[j][k].empty())cout<<i<<" "<<j<<" "<<k<<endl;now[j]=max(now[j],w[i][j]+q[j][k].top().first);}else{//if(q[k][res].empty())cout<<i<<" "<<j<<" "<<k<<" "<<res<<endl;if(li[res]){now[j]=max(now[j],w[i][j]+q[j][k].top().first+q[k][res].top().first);}}}}maxn=max(maxn,now[j]);}now[1]=now[2]=now[3]=-inf;for(int j=1;j<=3;++j){if(!li[j])continue;if(flag==0)break;if(sz[j]<li[j]){now[j]=w[i][j];if(now[j]==maxn&&flag){flag=0;ins(i,j);}}else{for(int k=1;k<=3;++k){if(!li[k])continue;if(k==j)continue;res=1;while(res==j||res==k)++res;if(sz[k]<li[k]){now[j]=max(now[j],w[i][j]+q[j][k].top().first);if(now[j]==maxn&&flag){flag=0;del(q[j][k].top().second,j,k);ins(i,j);}}else{if(li[res]){now[j]=max(now[j],w[i][j]+q[j][k].top().first+q[k][res].top().first);if(now[j]==maxn&&flag){flag=0;int x=q[j][k].top().second,y=q[k][res].top().second;del(x,j,k);del(y,k,res);ins(i,j);}}}}}}ans=ans+maxn;}printf("%lld\n",ans);return 0;
}/*
1 2 1
2 4 4
3 2 1
7 6 7
5 2 3
*/

②简单贪心

#include<algorithm>
#include<cstdio>
#include<queue>
using namespace std;
struct ppap
{long long a,b,c;bool operator < (const ppap &A) const{return a-b<A.a-A.b;}
}b[100010];
priority_queue<long long,vector<long long>,greater<long long> > q;
long long x,y,z,n,S,sum,ans,s[100010];
int main()
{scanf("%lld%lld%lld",&x,&y,&z),n=x+y+z;for(int i=1;i<=n;i++) scanf("%lld%lld%lld",&b[i].a,&b[i].b,&b[i].c),S+=b[i].c;sort(b+1,b+1+n);for(int i=1;i<=y;i++) sum+=b[i].b-b[i].c,q.push(b[i].b-b[i].c);for(int i=y+1;i<=n-x+1;i++) s[i]=sum,sum+=b[i].b-b[i].c,q.push(b[i].b-b[i].c),sum-=q.top(),q.pop();while(!q.empty()) q.pop();sum=0;for(int i=n;i>n-x;i--) sum+=b[i].a-b[i].c,q.push(b[i].a-b[i].c);for(int i=n-x;i>=y;i--) ans=max(ans,S+s[i+1]+sum),sum+=b[i].a-b[i].c,q.push(b[i].a-b[i].c),sum-=q.top(),q.pop();printf("%lld",ans);
}

DTOJ#4748. 钢镚相关推荐

  1. 【程序员薅羊毛系列1】京东官方购物返利得钢镚!

    之前我们给大家分享了<京东每月领30钢镚>.<京东股票猜涨跌领钢镚>.<支付宝京东猜涨跌小技巧>.<京东秒赚9元钢镚>. 其中"玩钢镚&quo ...

  2. Spring 【钢镚核恒】

    Spring 简介 Spring框架是企业开发复杂性的一站式解决方案 Spring框架的核心是loC容器与AOP面向切面编程 Spring loC负责创建与管理系统对象,并在此基础上扩展功能 使用 导 ...

  3. Spring MVC【钢镚核恒】

    Spring MVC 简介 Spring MVC是Spring体系的轻量级Web MVC框架 Spring MVC的核心Controller控制器,用于处理请求,产生响应 Spring MVC基于Sp ...

  4. 无聊的python课程_无聊的钢镚的python学习之路

    目标实现:通过网络爬虫爬取教务网的成绩:能够自动评教(全部好评,无评语):通过提前存入的课程代码,选取课程: 已实现目标:通过网络爬虫爬取教务网的成绩: 目标分析: 第一:实现模拟登录. 第二:跳转到 ...

  5. Java 探究集合List、Map、Set底层的数据结构【钢镚核恒】

    Java 集合 简介 集合 (collection)是存储对象的容器.例如:6个人一个团队(集合) 集合与数组类通,数组是存储具体数据的容器.集合的底层有用到数组 这篇文章是加深对集合的理解,探究各种 ...

  6. Java 面向对象 【钢镚核恒】

    Java 面向对象 简介 类和对象 类是模子,确定对象将会拥有的特征(属性)和行为(方法) 对象是类的实例表现 类是对象的类型 对象是特定类型的数据 类,抽象的概念-模板 对象,-个看得到.摸得着的具 ...

  7. Vue中使用SVG图标的步骤【钢镚核恒】

    Vue中使用SVG图标的步骤 简介 svg 可缩放矢量图形(Scalable Vector Graphics) svg 优势:任意缩放,超强显示效果,较小文件,可压缩 svgo 用来压缩svg中无用信 ...

  8. Java 原始的JDBC方式连接MySQL数据库【钢镚核恒】

    Java JDBC 简介 JDBC(Java DataBase Connectivity,Java数据库连接) JDBC 可让Java通过程序操作关系型数据库 JDBC 基于驱动程序实现与数据库的连接 ...

  9. Java 简介之JVM、JDK、JRE【钢镚核恒】

    Java 简介 Java是一门面向对象的程序设计语言 1995年由sun公司发布 2010年sun公司被Oracle公司收购 JVM JVM(Java Virtual Machine),Java虚拟机 ...

最新文章

  1. java maven项目使用sonar审核代码
  2. echo mysql_mysql select
  3. JQuery 匿名函数初识(转载)
  4. 本教程针对HBuilder5.0.0,制作日期2014-12-31(从HBuilder工具上获得)
  5. NIO介绍与Netty通信简单入门
  6. Android 之自定义view实现水波纹效果
  7. java 参数 string_java(String和StringBuffer分别作为参数传递)
  8. 实战:kafka实现日志收集系统
  9. 自由读写配置文件的艺术[java c++ node](二)
  10. 嵌入式软件开发工程师的养成之路——从 推挽输出 开始
  11. linux查看根目录的大小,linux下查看根目录或当前目录大小
  12. Linux 安装flash
  13. 三张图片无缝合成一张图片_在PS中如何将两张图片无缝拼接?
  14. 5G千兆无线路由器,国产工业级稳定通信
  15. PTA:7-120 新浪微博热门话题 (30分)--(map方法,加解析)
  16. IE 浏览器 判断 增加 支持 IE8 IE9 IE10 IE11等 IE浏览器(是不是IE浏览器判断)
  17. c语言结构体冒泡排序,c语言结构体冒泡排序求教
  18. 跨境贸易PayPal收款,个人美金额度不够了,如何提现美金?
  19. React 之使用echar注意事项
  20. 无人机这个创业方向靠谱吗?值得投资吗?

热门文章

  1. css怎么将文字底下设置颜色,css如何设置文字颜色
  2. 电商巨头正布局 2020年85%互动是人工智能在回应你
  3. 2023年中国酒店业数字化转型趋势报告
  4. H5前端手机调试打印之vConsole
  5. c++标准库--cstdio学习
  6. 《神经网络与深度学习》 邱希鹏 学习笔记(二)
  7. 一件真实感人的动物故事
  8. 石墨笔记,为知笔记和Effie哪个更适合公众号主?
  9. 考研计算机考多少算高分,考研究生需要多少分才能录取 考多少算高分
  10. 【输入九九乘法口诀表】