提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
一、游游的水果大礼包
题目链接:https://ac.nowcoder.com/acm/problem/255193
类型:求一个表达式的最值(并不是贪心,因为该题条件太少)
算法:枚举
依次枚举1号礼包的个数x,通过x计算出2号礼包的个数y,计算总价值
x[0,min(n/2,m)] ,y = min(n-2x,(m-x)/2)
注意:细节输入最大值为10^6,相乘可能会溢出,使用long存储
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
long n = in.nextInt();//苹果
long m = in.nextInt();//桃子
long a = in.nextInt();//2*apple+peach
long b = in.nextInt();//apple+2*peach
long res = 0;
//一号礼包的最大个数
long xLen = Math.min(n/2,m);
for(long i = 0;i<=xLen;i++){
long y = Math.min(n-2*i,(m-i)/2);//计算二号礼包的个数
res = Math.max(res,i*a+y*b);
}
System.out.println(res);
}
}