您的位置:首页 > 其它

hdu 4811 Ball 思维题

2016-10-22 12:06 411 查看
传送门:hdu4811

不多说了,直接上题解。。http://blog.csdn.net/w446506278/article/details/51915485

如果题解给的求前几个球得分的公式看不明白,可以用下面的方法。

一开始自己只想明白了当两边球颜色种类都达到最大时,再往里加球得分是固定的。。至于前几个球怎么放,我只想到了分情况解决。。

除了上面那一篇题解,看了其他题解发现真的可以分情况打表,不过我并没有想到要打表,只是单纯地想多分几种情况而已,能打表是因为如果有某种颜色的球不足两个,那么无论是哪种颜色缺球,在缺的球数量相同的情况下得分是固定的。

附上打表代码:http://blog.csdn.net/q295657451/article/details/39007241

其实根据他打的表可以统计出一个更为简单的表,f[0]=f[1]=0,f[2]=1,f[3]=3,f[4]=6,f[5]=10,f[6]=15.

附上自己的代码(基本抄题解)

#include <iostream>
#include <cstdio>
#include <cstring>
#define ll long long
using namespace std;
int main()
{
ll a,b,c;
while(~scanf("%lld%lld%lld",&a,&b,&c))
{
ll aa=a>2?2:a;
ll bb=b>2?2:b;
ll cc=c>2?2:c;
ll t=aa+bb+cc;
printf("%lld\n",(t-1)*t/2+(a+b+c-t)*t);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: