hdu 4811 Ball(数学)
来源:互联网 发布:我的域名怎么建设网站 编辑:程序博客网 时间:2024/04/29 14:52
题目链接:hdu 4811 Ball
题目大意:有三种颜色的球若干,每次向桌子上放一个球,保证是一条序列,每次放球的得分为当前放入序列的球的前面有多少种不同的颜色a,后面的有多少种不同的颜色b,a+b。问说给定球的数量后,最大得分为多少。
解题思路:因为放球顺序是自己定的,所以我们可以尽量早得构造一个序列,使得后面放入球的得分均保持在峰值。那么求峰值就要根据球的数量来决定。我们叫得分为峰值的求为最高得分球,它们有很多个。对于一种颜色来说:0个,表示不能为在最高得分球的左边和右边,换句话来说,就是不能创造得分;1个,要么在左要么在右,创造一个得分;2个左右各一,创造两个得分;2个以上,一边有两个没有意义,所以还是两个得分。
于是峰值即被求出来了,剩下的就简单多了。
#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;typedef long long ll;inline ll cal (ll u) { if (u <= 2) return u; else return 2;}int main () { ll R, Y, B; while (cin >> R >> Y >> B) { ll h = cal(R) + cal(Y) + cal(B); ll n = R + Y + B; ll ans = 0; for (ll i = 0; i < n && i < h; i++) ans += i; if (n > h) ans += h * (n-h);; cout << ans << endl; } return 0;}
1 0
- hdu 4811 Ball(数学)
- HDU 4811 Ball 公式
- [思路] hdu 4811 Ball
- HDU 4811 Ball 模拟
- HDU 4811 Ball
- -----hdu 4811 ball
- HDU 4811——Ball
- HDU 4811 Ball(贪心)
- HDU-4811 Ball 想法题
- HDU 4811 Ball(贪心)
- HDU 4811 Ball(水)
- hdu 4811 Ball 思维题
- HDU 4811 Ball(公式)
- HDU:2277 Change the ball(水)(数学)
- HDU Ball
- Ball HDU
- HDU-#4811Ball(找规律)
- HDU 4811 Ball(超直白解释)
- 哈夫曼编码与译码
- [C/C++]illegal use of this type as an expression报错的原因
- TypeError: 'builtin_function_or_method' object has no attribute '__getitem__'
- Java线程(三)
- hdu4067 费用流(混合欧拉的宽展和延伸)
- hdu 4811 Ball(数学)
- 解决浏览器分辨率不一的浮动问题
- dubbo的安装和使用
- ubuntu 14.04/CentOS 6.5中安装JAVA JDK
- 2014百度之星资格赛1004
- sql 统计比赛胜利失败场数
- java中的多线程
- UVa - 457 - Linear Cellular Automata 题解
- 【还没看,先转走】MISRA 2004规则