2016 四川省赛 E. Coins 找规律 .

题目地址:https://acm.bnu.edu.cn/v3/contest_show.php?cid=8521#problem/E

一开始以为是DP.....

然而就是找规律

先从a1的数量(因为是1,好分类)开始分类

1)a1>=2时,1~(a1+2*a2+3*a3)的东西都可以买,所以有a1+2*a2+3*a3个

2)a1==1时,

a2>=1时,1~(a1+2*a2+3*a3)的东西都可以买,所以有a1+2*a2+3*a3个

a2==0时,a3自己组合有a3种,a1和a3组合不会有重复,所以有a3种,再加上a1的一种,所以一共a1+2*a3种

3)a1==0时,

a2==0时,就是a3的数量了

a2==1时,a3自己组合有a3种,a2和a3组合不会有重复,所以有a3种,再加上a2的一种,所以一共a2+2*a3种

a2>=2时,

a3==0时,就是a2的数量

a3!=0时,存在重复的,就是3*a3+2*a2-2


#include 
#include 
#include 
#include 
using namespace std;
typedef long long LL;
LL solve(LL a1,LL a2,LL a3)
{
	if (a1>=2)	return a1+2*a2+3*a3;//1~(a1+2*a2+3*a3)
	else if (a1==1){
		if(a2>=1) return a1+2*a2+3*a3;
		else return 1+2*a3;
	}
	else //a1==0;
	{
		if(a2==0) return a3;
		else if(a2==1) return a2+2*a3;
		else{
			if(a3==0) return a2;
			else return 3*a3+2*a2-2;
		}
	}
}
int main(int argc, char const *argv[])
{
	LL a1,a2,a3;
	cin>>a1>>a2>>a3;
	cout<




你可能感兴趣的:(ACM)