hdu 4811 Ball 思维题

传送门: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;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值