Content

有 \(k_2\) 个 \(2\)、\(k_3\) 个 \(3\)、\(k_5\) 个 \(5\) 和 \(k_6\) 个 \(6\),你可以用这里面的数字来组成 \(256,32\) 两种数字,试求出组成数字的总和的最大值。

数据范围:\(0\leqslant k_2,k_3,k_5,k_6\leqslant 5\times 10^6\)。

Solution

我们很容易想到这样一个贪心的思路:先尽可能多地组合成 \(256\),在尽可能多地组成 \(32\)。 所以,我们先看能组成多少个 \(256\),很显然答案是 \(\min\{k_2,k_5,k_6\}\)。然后把 \(2,5,6\) 的个数都减去这个数。设减掉以后 \(2,5,6\) 的个数分别是 \(k'_2,k'_5,k'_6\)。然后再看能够组成多少个 \(32\),很显然答案就是 \(\min\{k'_2,k_3\}\)。最后答案就是 \(\min\{k_2,k_5,k_6\}\times 256+\min\{k_2-\min\{k_2,k_5,k_6\},k_3\}\times32\)。

Code

#include <cstdio>
#include <algorithm>
#include <cstring>
#include <cmath>
#include <iostream>
using namespace std; int k2, k3, k5, k6, ans; int main() {
scanf("%d%d%d%d", &k2, &k3, &k5, &k6);
int num256 = min(k2, min(k5, k6));
ans += num256 * 256, k2 -= num256, k5 -= num256, k6 -= num256;
int num32 = min(k3, k2);
ans += num32 * 32, k3 -= num32, k2 -= num32;
printf("%d", ans);
return 0;
}

最新文章

  1. 在Application_Error事件中获取当前的Action和Control
  2. FlashBuilder项目环境配置
  3. java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver 错误的解决办法
  4. webpack练手项目之easySlide(一):初探webpack (转)
  5. vm导入后远程桌面无法登陆域账户
  6. xcode 和 android studio中在Mac系统下的自动对齐快捷键
  7. mave之:java的web项目必须要的三个jar的pom形式
  8. Upgrading to Java 8——第四章 The Stream API
  9. 设置sudo权限
  10. elasticsearch最佳实践
  11. 我 对jvm 创建线程的一些了解
  12. [译]RabbitMQ教程C#版 - 路由
  13. 1003 Emergency Dijkstra
  14. 前端 dojo
  15. 生命周期方法调用,以及在onStop()方法中处理草稿信息
  16. NSNull, Nil, nil, NULL区别(OC)
  17. jmeter中Implementation中几个选项的区别
  18. window 下复制 cmd内容
  19. (原创)Hibernate persistentSet的remove()方法不起作用
  20. C#(.NET)面试题:做一个能自定义输入命令的表格程序

热门文章

  1. 【JavaSE】IO(1)-- File类
  2. BehaviorTree.CPP行为树BT的队列节点(三)
  3. Codeforces 1411G - No Game No Life(博弈论+生成函数+FWTxor)
  4. 洛谷 P4621 - [COCI2012-2013#6] BAKTERIJE(exCRT)
  5. hdu 5552 Bus Routes
  6. 《python编程从入门到实践》读书实践笔记(一)
  7. R绘图布局包 customLayout
  8. 半主机模式和_MICROLIB 库
  9. QQ空间技术架构之深刻揭秘
  10. 5 — springboot中的yml多环境配置