码迷,mamicode.com
首页 > 其他好文 > 详细

砝码问题之二(完全背包问题)

时间:2016-04-15 00:01:41      阅读:356      评论:0      收藏:0      [点我收藏+]

标签:

有一组砝码,重量互不相等,分别为m1、m2、m3……mn;每种砝码的数量有无限个。 
现要用这些砝码去称物体的重量,给你一个重量n,请你判断有给定的砝码能否称出重量n。 
现在给你一个正整数列表w和一个正整数n,列表w中的第i个元素w[i]表示第i种砝码的重量,
n表示要你判断的重量。如果给定砝码能称出重量n,输出Yes,否则输出No。
例如,w=[2,5,11], n=9,则输出Yes(取两个2,一个5)。
w = [2, 5, 11]
n = 9
S = [-1 for i in xrange(n+1)]
S[0] = 0
for j in xrange(len(w)):
    for k in xrange(1, n+1):
        if k-w[j] >= 0 and not S[k-w[j]] == -1:
            S[k] = 1
if not S[n] == -1:
    print Yes
else:
    print No

完全背包问题,刚开始弄懂这个还是费了一些劲。。。

这个可以说是无价值完全背包问题,每个东西只有体积并没有价值。

完全背包别人写的比较好,请百度。。。

砝码问题之二(完全背包问题)

标签:

原文地址:http://www.cnblogs.com/webgavin/p/5393319.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有 京ICP备13008772号-2
迷上了代码!