测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A25736. 编程实现:小蓝桌子上摆放着一个容积为m的书包及n件不同的商品,且每件商品上都标有商品的体积和商品的价值。小蓝要满足以下要求挑选商品装入书包中要求1:挑选的商品总体积不超过书包的容积;要求2:挑选的商品商品总价值最大。请你帮助小蓝计算出能装入书包的商品的最大价值。输入描述:第一行输入两个正整数m和n,m表示书包的容积,n表示商品的数量。两个正整数之间一个英文逗号隔开第二行输入n个正整数表示商品的体…

填空题 中等

题目描述

编程实现:

小蓝桌子上摆放着一个容积为m的书包及n件不同的商品,且每件商品上都标有商品的体积和商品的价值。

小蓝要满足以下要求挑选商品装入书包中

要求1:挑选的商品总体积不超过书包的容积;

要求2:挑选的商品商品总价值最大。

请你帮助小蓝计算出能装入书包的商品的最大价值。

输入描述:

第一行输入两个正整数m和n,m表示书包的容积,n表示商品的数量。两个正整数之间一个英文逗号隔开

第二行输入n个正整数表示商品的体积,正整数之间一个英文逗号隔开

第三行输入n个正整数表示商品的价值,正整数之间一个英文逗号隔开(商品价值的输入顺序对应商品体积输入顺序)

输出描述:

输出装入书包的商品的最大价值

样例输入:

11,3
2,6,4
1,5,2

样例输出:

7

参考答案

#参考答案1 import itertools str1 = input() str2 = input() str3 = input() str1 = str1.split(",") str2 = str2.split(",") str3 = str3.split(",") grp1 = [] for i in str1: grp1.append(int(i)) grp2 = [] for i in str2: grp2.append(int(i)) grp3 = [] for i in str3: grp3.append(int(i)) bag_vol = grp1[0] items = [] for i in range(0,len(grp2)): items.append([grp2[i],grp3[i]]) max_vlu = 0 import itertools for i in range(1,len(grp2)+1): comb = itertools.combinations(items,r=i) for j in comb: vu = 0 wt = 0 for k in j: wt += k[0] vu += k[1] if wt <= grp1[0] and vu>max_vlu: max_vlu = vu print(max_vlu) #参考答案2 rj = int(input().split(',')[0]) tj = list(map(int, input().split(','))) jz = list(map(int, input().split(','))) jzh = 0 jzmax = 0 while rj >= min(tj): oi = 0 for i in range(len(tj)): if jz[i] > jzmax: jzmax = jz[i] oi = i if rj >= tj[oi]: jzh += jzmax rj -= tj[oi] jzmax = 0 del tj[oi] del jz[oi] if tj == []: break print(jzh)

答案解析

评分标准:

7分:能正确输出一组数据;

7分:能正确输出两组数据;

7分:能正确输出三组数据;

7分:能正确输出四组数据;

7分:能正确输出五组数据。

上一题 下一题