首页 > 试题广场 >

小米大礼包

[编程题]小米大礼包
  • 热度指数:4547 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M
  • 算法知识视频讲解
小米之家是成人糖果店。里面有很多便宜,好用,好玩的产品。中秋节快到了,小米之家想给米粉们准备一些固定金额大礼包。对于给定的一个金额,需要判断能不能用不同种产品(一种产品在礼包最多出现一次)组合出来这个金额。聪明的你来帮帮米家的小伙伴吧。

输入描述:
输入 N (N 是正整数, N  <= 200)
输入 N 个价格p(正整数, p <= 10000)用单空格分割
输入金额 M(M是正整数,M <= 100000 )


输出描述:
能组合出来输出 1
否则输出 0
示例1

输入

6
99 199 1999 10000 39 1499
10238

输出

1
头像 牛客题解官
发表于 2020-06-05 16:02:28
题解 题目难度:中等难度 知识点:查找、数组、动态规划 解析问题:本题可以分析为典型的01背包问题,使用动态规划就可以解决问题。在分析问题时,主要解析为以下三步。第一步:确定【状态】和【选择】。在本题中,【状态】就是“剩余的总和”和“可选择的数”,【选择】就是“放入这个数”和“不放入这个数”。第二步 展开全文