枚举, DP优化之后也没有能通过所有案例.
def max_value(n, m, a, b):
max_total = 0
# 枚举组成一号大礼包的数量 x
for x in range(min(n // 2, m) + 1):
# 剩余资源
remaining_n = n - 2 * x
remaining_m = m - x
# 计算能够组成的二号大礼包数量 y
y = min(remaining_n, remaining_m // 2)
# 计算总价值
total = x * a + y * b
# 更新最大值
if total > max_total:
max_total = total
return max_total
# 读取输入
n, m, a, b = map(int, input().split())
# 输出结果
print(max_value(n, m, a, b))

京公网安备 11010502036488号