首页 > 试题广场 >

小米大礼包

[编程题]小米大礼包
  • 热度指数:4670 时间限制: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
import sys
n=int(sys.stdin.readline().strip())
price=list(map(int,sys.stdin.readline().split()))
money=int(sys.stdin.readline().strip())
res=[0 for i in range(money+1)]
res[0]=1
for num in price:
    i=money
    while i>=num:
        res[i]=res[i]+res[i-num]
        i-=1
if res[-1]>=1:
    result=1
else:
    result=0
print(result)
####60% leetcode 494 目标和 动态规划
发表于 2019-08-31 17:26:42 回复(0)