CF734B Anton and Digits 题解
2024-09-03 08:05:32
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;
}
最新文章
- 在Application_Error事件中获取当前的Action和Control
- FlashBuilder项目环境配置
- java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver 错误的解决办法
- webpack练手项目之easySlide(一):初探webpack (转)
- vm导入后远程桌面无法登陆域账户
- xcode 和 android studio中在Mac系统下的自动对齐快捷键
- mave之:java的web项目必须要的三个jar的pom形式
- Upgrading to Java 8——第四章 The Stream API
- 设置sudo权限
- elasticsearch最佳实践
- 我 对jvm 创建线程的一些了解
- [译]RabbitMQ教程C#版 - 路由
- 1003 Emergency Dijkstra
- 前端 dojo
- 生命周期方法调用,以及在onStop()方法中处理草稿信息
- NSNull, Nil, nil, NULL区别(OC)
- jmeter中Implementation中几个选项的区别
- window 下复制 cmd内容
- (原创)Hibernate persistentSet的remove()方法不起作用
- C#(.NET)面试题:做一个能自定义输入命令的表格程序
热门文章
- 【JavaSE】IO(1)-- File类
- BehaviorTree.CPP行为树BT的队列节点(三)
- Codeforces 1411G - No Game No Life(博弈论+生成函数+FWTxor)
- 洛谷 P4621 - [COCI2012-2013#6] BAKTERIJE(exCRT)
- hdu 5552 Bus Routes
- 《python编程从入门到实践》读书实践笔记(一)
- R绘图布局包 customLayout
- 半主机模式和_MICROLIB 库
- QQ空间技术架构之深刻揭秘
- 5 — springboot中的yml多环境配置