题意:

有$X + Y + Z$个人,第$i$个人有$Ai$个金币,$Bi$个银币,$Ci$个铜币。 选出$X$个人获得其金币,选出$Y$ 个人获得其银币,选出$Z$个人获得 其铜币,在不重复选某个人的前提下,最大化获得的币的总数。

$X + Y + Z ≤ 10^5$

题解:

一道比较好的题

首先比较显然的是这个东西可以dp,复杂度上天

考虑只有两种金币

那么我们可以通过将$ai=ai-bi$ 使得问题变成一维取最大值,那就可以O(n)贪心了

对于这道题同理,我们先将$ai=ai-ci$ $bi=bi-ci$

那么变成了有两种物品,其$a$取$k1$个,$b$取$k2$个

然后呢现在肯定没法直接贪心了

但是这种和顺序无关的我们先按照ai递减排序一下

我们去枚举最后一个选的ai

那么对于它之前的,我们一定要么用了ai要么用了bi,而对于后面的,一定选最大的几个bi

对于前面的,等价于第一个问题 然后用堆维护一下就行了

最新文章

  1. symfony2 twig模板引擎
  2. Python3 连接Mysql
  3. Node调试之道-----JSHint
  4. 8. String to Integer (atoi)
  5. Mod 与 RequireJS/SeaJS 的那些事
  6. 利用OpenCV和MFC对话框建设一个有滑动条控制的播放器--转
  7. [置顶] P2P网贷对推动社会发展的影响
  8. m,mm,mmm的用法
  9. java中使用fastjson、jackson、json-lib解析JSON-------------------妈妈再也不用担心JSON解析
  10. RESTful API 架构解读
  11. makefile学习笔记(一)
  12. 剑指Offer——知识点储备-数据库基础
  13. Linux kernel的中断子系统之(六):ARM中断处理过程
  14. Android缓存机制——LruCache
  15. Thymleaf 从某处(不包含某处)开始截取字符串到末尾
  16. H5 27-优先级之important
  17. Linux下怎样搜索文件
  18. 前端工程化系列[05] Yeoman脚手架使用入门
  19. java的基本数据类型--四类八种
  20. Mac 下配置 Python 开发环境

热门文章

  1. Arrays 三种基本常用法
  2. neutron-删除负载均衡器
  3. 【UR #7】水题走四方
  4. sqlalchemy和pymysql通过ssh连接远程mysql服务器
  5. elk插件以及分词器安装
  6. 使用 gzexe 快速加密解密文件内容
  7. Hbase G1 gc 调优最终参数
  8. CMDB资产管理系统开发【day26】:Django admin
  9. 第十三节:实际开发中使用最多的监视锁Monitor、lock语法糖的扩展、混合锁的使用(ManualResetEvent、SemaphoreSlim、ReaderWriterLockSlim)
  10. JavaScript IIEF 模仿块级作用域