51nod1548

http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1548&judgeId=591728

CodeForces

修改 隐藏话题

1548 欧姆诺姆和糖果 

题目来源: CodeForces

基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题

 收藏

 关注

一天,欧姆诺诺姆来到了朋友家里,他发现了许多糖果。有蓝色和红色两种。他知道每颗红色糖果重Wr克,每颗蓝色糖果重Wb克。吃一颗蓝色糖果会给他带来Hb的欢乐值,吃一颗红色糖果会给他带来Hr的欢乐值。

欧姆诺姆最多只能吃C克的糖果,而且每一颗糖果不能只吃一半。现在他想通过吃蓝色和红色的糖果来获得最大的欢乐值。

样例解释:每一种糖果吃两颗即可。

Input

单组测试数据。
输入占一行有四个整数C,Hr,Hb,Wr,Wb (1≤C,Hr,Hb,Wr,Wb≤10^9).

Output

输出最大可能获得的欢乐值。

Input示例

样例输入1
10 3 5 2 3

Output示例

样例输出1
16

暴力枚举:数量乘质量等于总质量,所以两个数不能同时超过根号c

#include<iostream>
#include<math.h>
#include<stdio.h>
#define ll long long
using namespace std;
int main()
{
		ll a[10],b[10];
	ll w,rs,bs,rw,bw,ans=0;
	scanf("%lld%lld%lld%lld%lld",&w,&b[1],&b[2],&a[1],&a[2]);
//	ll a[10],b[10];
	for(ll i=0;i<=sqrt(w*1.0);i++)
	{
		if(i*a[1]<=w)  ans=max(ans,i*b[1]+(w-i*a[1])/a[2]*b[2]);
		if(i*a[2]<=w)	ans=max(ans,i*b[2]+(w-i*a[2])/a[1]*b[1]);
	}
	printf("%lld\n",ans);
	return 0;
}
//5 3 1 6 7  0

猜你喜欢

转载自blog.csdn.net/qq_41453511/article/details/81382788
今日推荐