HJ41 称砝码

描述

现有n种砝码,重量互不相等,分别为 m1,m2,m3…mn ;
每种砝码对应的数量为 x1,x2,x3...xn 。现在要用这些砝码去称物体的重量(放在同一侧),问能称出多少种不同的重量。

 

注:

称重重量包括 0
 
数据范围:每组输入数据满足 1 \le n \le 10 \1n10  , 1 \le m_i \le 2000 \1mi2000  , 1 \le x_i \le 10 \1xi10 

输入描述:

对于每组测试数据:
第一行:n --- 砝码的种数(范围[1,10])
第二行:m1 m2 m3 ... mn --- 每种砝码的重量(范围[1,2000])
第三行:x1 x2 x3 .... xn --- 每种砝码对应的数量(范围[1,10])

输出描述:

利用给定的砝码可以称出的不同的重量数

示例1
输入:
2
1 2
2 1

输出:
5

说明:
可以表示出0,1,2,3,4五种重量。

while True:
    try:
        a = int(input())
        weight = list(map(int,input().split()))
        count = list(map(int,input().split()))
        fm,temp,ans = [],[],[0]
        # 将所有砝码放入列表
        for i in range(a):
            for j in range(count[i]):
                fm.append(weight[i])
        # 称重
        for i in fm:
            temp = set(ans)
            for j in temp:
                ans.append(j+i)
        # 去重
        print(len(set(ans)))
    except:
        break

有点难。。多看

posted @ 2022-07-04 22:09  hoo_o  阅读(343)  评论(0编辑  收藏  举报