最小值原则

`
n, x, q = map(int, input().split())
w = list(map(int, input().split()))

cost1 = x

cost2 = min(w) + q

cost3 = min(w) + 10

print(min(cost1, cost2, cost3))
`
一、输入与输出格式

输入格式

  • 第 1 行:三个正整数 n, x, q
  • 第 2 行:n 个正整数,表示每道菜的价格 w_i

输出格式

  • 输出一个整数,表示最少花费金额

三、问题分析

要喝到饮料,一共有 三种可选方案:

方案一:直接买饮料
不使用优惠券,也不点菜。

方案二:使用优惠券
使用优惠券之前,必须点一份菜。

方案三:购买套餐

关键思想

不需要枚举所有菜品,只需要关注最便宜的那一道菜。

四、代码实现(Python)

# 读取输入
n, x, q = map(int, input().split())
w = list(map(int, input().split()))

# 方案一:直接买饮料
cost1 = x

# 方案二:点最便宜的菜 + 使用优惠券
cost2 = min(w) + q

# 方案三:购买套餐
cost3 = min(w) + 10

# 输出最小花费
print(min(cost1, cost2, cost3))

五、代码解释

1️⃣ 读取第一行输入

n, x, q = map(int, input().split())
  • input() 读取整行字符串
  • split() 按空格拆分
  • map(int, ...) 转换为整数
  • 分别赋值给 n, x, q

2️⃣ 读取菜价列表

w = list(map(int, input().split()))

此时:

w = [w₁, w₂, ..., wₙ]

3️⃣ 计算三种方案的花费

cost1 = x

直接购买饮料。

cost2 = min(w) + q

选择最便宜的菜,再使用优惠券。

cost3 = min(w) + 10

购买最便宜菜对应的套餐。

4️⃣ 输出最终答案

print(min(cost1, cost2, cost3))

六、总结
利用“最小值原则”快速得到最优解

posted @ 2025-12-24 13:31  wdd200706  阅读(5)  评论(0)    收藏  举报