游游的水果大礼包

思路:

假设苹果有n个,桃有m个

然后有1号和2号两个人

1号取价值为a元的礼包x个,2号取价值为b元的礼包y个,那么最多可以组成 ax + by的价值总和,由于x个礼包一次消耗两个苹果,一个桃,y个礼包一次消耗一个苹果两个桃。

故易知x的范围为[ 0, min(n/2, m) ],y 的范围为 min[n - 2x,(m-x)/2],则我们就可以通过枚举来算出该结果。

同理我们可以把上面的枚举归类为一种题型,当要求ax + by时,已知x的范围,以及 y = f(x),那么可以用一层for循环n次,来枚举到。

#include <iostream>
#include <string>
#include <cstring>
#include <vector>
#include <algorithm>
using namespace std;

typedef long long ll;

int main()
{
	ll n, m, a, b, res = 0;
	cin >> n >> m >> a >> b;
	//枚举
	for (int x = 0; x <= min(n / 2, m); x++) //枚举一号礼包的个数
	{
		int y = min(n - x * 2, (m - x) / 2); //枚举二号礼包的数量
		res = max(res, a * x + b * y);
	}
	cout << res << endl;

	return 0;
}

}

全部评论

相关推荐

待现的未见之事:起码第一句要把自己的优势说出来吧。比如什么xx本27届学生,随时到岗....
点赞 评论 收藏
分享
05-12 11:09
已编辑
门头沟学院 后端
已注销:没必要放这么多专业技能的描述。这些应该是默认已会的,写这么多行感觉在凑内容。项目这块感觉再包装包装吧,换个名字,虽然大家的项目基本都是网上套壳的,但是你这也太明显了。放一个业务项目,再放一个技术项目。技术项目,例如中间件的一些扩展和尝试。
点赞 评论 收藏
分享
评论
3
3
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务