CF-478C Table Decorations (贪心)
Table Decorations
Time limit per test: 1 second
Memory limit per test: 256 megabytes
Problem Description
You have r red, g green and b blue balloons. To decorate a single table for the banquet you need exactly three balloons. Three balloons attached to some table shouldn't have the same color. What maximum number t of tables can be decorated if we know number of balloons of each color?
Your task is to write a program that for given values r, g and b will find the maximum number t of tables, that can be decorated in the required manner.
Input
The single line contains three integers r, g and b (0 ≤ r, g, b ≤ 2·10^9) — the number of red, green and blue balloons respectively. The numbers are separated by exactly one space.
Output
Print a single integer t — the maximum number of tables that can be decorated in the required manner.
Sample Input & output
5 4 3 (output: 4)
1 1 1 (output: 1)
2 3 3 (output: 2)
Note
In the first sample you can decorate the tables with the following balloon sets: "rgg", "gbb", "brr", "rrg", where "r", "g" and "b" represent the red, green and blue balls, respectively.
Solution
题目数据给的很大,显然不是模拟的意思。所以应是利用贪心思想。
思路是先对所给三个数值按降序排序,得到a、b、c。然后判断a与(b + c) * 2的关系:
若a >= (b + c) * 2,则拿两个a分别给b或c,则限制因素为b+c。所以最后解为b+c(a剩余多了)。如果是三种颜色都挑,则提高了题目的要求,也就是只需三个颜色不都相同就可以。
若a < (b+c) * 2,则限制因素为a。这时解为(a + b + c) / 3。解释是:首先可以发现在满足这个条件时,a是不够的,也就是说在a两个两个取完之前,b和c一定至少有一个还有剩。那么假设一个数据 3 3 2。模拟:1 2 2;0 0 2。也就是后面一定会剩下。那么是否会出现最后是0 1 6这种情况呢?也就是b的个数又成为限制因素。
我反推了试试:0 1 6;2 2 6;4 3 6;6 4 6;8 5 6;10 6 6(5个桌子)。
而实际上对于这个数据正确解法应是10 6 6;8 5 6;6 5 5;4 4 5;2 4 4;0 3 4;0 3 2;0 1 1(7个桌子)。
所以,0 1 6这种情况的出现是因为在中间的选择过程中就已经不满足贪心。
也就是说最后剩下的两个一定会是用到0 1、1 0、1 1三者之一,即剩下1个或2个。
所以整数除法(a + b + c) / 3 为正解。
if(a >= (b + c) * )
cout << b + c << endl;
else
cout << (a + b + c) / << endl;
CF-478C Table Decorations (贪心)的更多相关文章
- CodeForces 478C Table Decorations
Table Decorations Time Limit:1000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64u ...
- 贪心 Codeforces Round #273 (Div. 2) C. Table Decorations
题目传送门 /* 贪心:排序后,当a[3] > 2 * (a[1] + a[2]), 可以最多的2个,其他的都是1个,ggr,ggb, ggr... ans = a[1] + a[2]; 或先2 ...
- 【CODEFORCES】 C. Table Decorations
C. Table Decorations time limit per test 1 second memory limit per test 256 megabytes input standard ...
- Codeforces Round #273 (Div. 2)-C. Table Decorations
http://codeforces.com/contest/478/problem/C C. Table Decorations time limit per test 1 second memory ...
- cf478C Table Decorations
C. Table Decorations time limit per test 1 second memory limit per test 256 megabytes input standard ...
- C. Table Decorations(Codeforces Round 273)
C. Table Decorations time limit per test 1 second memory limit per test 256 megabytes input standard ...
- codeforces 的 Codeforces Round #273 (Div. 2) --C Table Decorations
C. Table Decorations time limit per test 1 second memory limit per test 256 megabytes input standard ...
- Codeforces Round #273 (Div. 2)C. Table Decorations 数学
C. Table Decorations You have r red, g green and b blue balloons. To decorate a single table for t ...
- 【Codeforces 478C】Table Decorations
[链接] 我是链接,点我呀:) [题意] 给你r,g,b三种颜色的气球 每张桌子要放3个气球 但是3个气球的颜色不能全都一样 (允许两个一样,或者全都不一样) 问你最多能装饰多少张桌子 [题解] 先把 ...
随机推荐
- .NET CORE(C#) WPF 重新设计Instagram
微信公众号:Dotnet9,网站:Dotnet9,问题或建议:请网站留言, 如果对您有所帮助:欢迎赞赏. .NET CORE(C#) WPF 重新设计Instagram 阅读导航 本文背景 代码实现 ...
- JMeter性能监控插件PerfMon Metrics Collector
Jmeter性能监控插件由客户端插件和服务器端程序组成. 官方文档及插件下载地址https://jmeter-plugins.org/wiki/PerfMon/ 将插件 plugins-manager ...
- 软考复习之UML设计篇
UML统一建模语言 构件图:描述系统的物理结构,它可以用来显示程序代码如何分解成模块 部署图:描述系统中硬件和软件的物理结构,它描述构成系统架构的软件构件,处理器和设备 用例图:描述系统与外部系统及用 ...
- 静态库&动态库&导入库
我遇到的问题 先贴一个StackOverflow上的问题 上面的问题让我知道了更多动态库的知识. 我需要使用一个声音库(irrKlang)为2d游戏提供声音,我使用的编译器是mingw-w64,但是i ...
- C# Winform初体验
设计一个简单的登录窗口,要求输入用户名:小金,密码:123456时候点登录能正确转到另一个窗口. 1.建立窗体应用. 2.这里创建一个login和一个NewForm的窗体. 3.在login的窗体拖拉 ...
- Element节点
Element节点对象对应网页的 HTML 元素.每一个 HTML 元素,在 DOM 树上都会转化成一个Element节点对象(以下简称元素节点).元素节点的nodeType属性都是1.Element ...
- java script 内置对象
java script 内置对象 Date 日期对象 字符串对象 定义字符串的方法就是直接赋值 使用 String 对象的 toUpperCase() 方法来将字符串小写字母转换为大写,反之 toLo ...
- 如何在CentOS上安装Tensorflow的gpu版本?
系统配置 系统版本: Centos7.6 语言: Python3.5(anaconda3 4.2) 框架: Tensorflow 安装依赖 sudo yum install openjdk-8-jdk ...
- 数据结构(集合)学习之Map(一)
集合 框架关系图: 补充:HashTable父类是Dictionary,不是AbstractMap. Map: Map(接口)和Collection都属于集合,但是Map不是Collection的子类 ...
- springBoot 与 springMVC的区别
springMVC 1.是基于Servlet的一个MVC框架(DispatcherServlet.ModelAndView.ViewResolver),解决web开发问题 缺点是 :配置复杂 要简化使 ...