首页 > 试题广场 >

外卖满减

[编程题]外卖满减
  • 热度指数:5694 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M
  • 算法知识视频讲解
你打开了美了么外卖,选择了一家店,你手里有一张满 X 元减 10 元的券,店里总共有 n 种菜,第 i 种菜一份需要 Ai 元,因为你不想吃太多份同一种菜,所以每种菜你最多只能点一份,现在问你最少需要选择多少元的商品才能使用这张券。

数据范围: ,

输入描述:
第一行两个正整数n和X,分别表示菜品数量和券的最低使用价格。 接下来一行n个整数,第i个整数表示第i种菜品的价格。


输出描述:
一个数,表示最少需要选择多少元的菜才能使用这张满X元减10元的券,保证有解。
示例1

输入

5 20
18 19 17 6 7

输出

23
头像 laglangyue
发表于 2020-06-20 21:22:11
01背包,动态规划,dp[x+1],定义未达到i元的最低消费,剩下j元,对于当前物品int[i],价值和花费为int[i],是否购买当前物品分两种情况:当前价值j不够或者刚好能够购买物品i,买了物品i不能买其他物品了,dp[j]是前i-1件的最小价值,与当前价值作比较;当前价值j超过了物品i的价值, 展开全文
头像 17c89
发表于 2024-01-21 12:20:52
import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String[] args){ Scanner in = new Scanner(S 展开全文
头像 牛客169207701号
发表于 2021-09-10 22:10:26
/* 美团外卖劵, 满足最低花费的价格 dp[0][...] : 菜品数量为 0,这种情况不正常,用较大数说明不正常 dp[...][0]: 优惠券数量为0, 因此最低消费 0 元 dp[i][j]: 菜品数量为 i 时, coupy 为 j 时的最低花费 当 j < 当前 展开全文