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

A25691. 编程实现:假设果园中有 N (1≤N≤100)种水果。猴子想要采摘一些水果带回家,但猴子采摘水果的总重量不能超过 W(1≤W≤1000)。已知每种水果的最大采摘数量 Ni (1≤Ni≤100)、每种水果单个的重量 Wi (1≤Wi≤100)以及每种水果单个的维生素含量 Vi (1≤Vi≤100)。在采摘水果的总重量不超过 w 的情况下,猴子最多可以获得多少维生素。例如:N=3,W=5,表示有 3…

填空题 较易

题目描述

编程实现:

假设果园中有 N (1≤N≤100)种水果。猴子想要采摘一些水果带回家,但猴子采摘水果的总重量不能超过 W(1≤W≤1000)。

已知每种水果的最大采摘数量 Ni (1≤Ni≤100)、每种水果单个的重量 Wi (1≤Wi≤100)以及每种水果单个的维生素含量 Vi (1≤Vi≤100)。

在采摘水果的总重量不超过 w 的情况下,猴子最多可以获得多少维生素。

例如:N=3,W=5,表示有 3 种水果,旦猴子采摘水果的总重量不能超过 5。

每种水果的最大采摘数量 Ni、每种水果单个的重量 Wi 及每种水果单个的维生素含量 Vi,如下表:

猴子可按以下方式采摘,获得最多的维生素:

1)采摘第一种水果 3 个,3 个水果的重量为 3,3 个水果维生素含量为 6;

2)采摘第二种水果 1 个,1 个水果的重量为 2,1 个水果维生素含量为 4;

水果总的维生素含量最多为 10 (10=6+4)。

输入描述:

第一行输入两个正整数 N (1≤N≤100)和 W (1≤W≤1000),分别表示水果的种类数和猴子最多可采摘的水果总重量,两个正整数之间以一个空格隔开

接下来 N 行,每行输入三个正整数 Ni (1≤Ni≤100)和 Wi(1≤Wi≤100) 及 Vi (1≤Vis100),分别表示某种水果的最大

采摘数量和某种水果单个的重量及某种水果单个的维生素含量,正整数之间以一个空格隔开

输出描述:

输出一个整数,表示在不能超过水果总重量 w 的情况下,猴子最多能获得到的维生素值

样例输入:

3 5
4 1 2
1 2 4
2 4 5

样例输出:

10

参考答案

#参考答案1 N, V = map(int, input().split()) dp = [0] * (V+1) for _ in range(N): s, v, w = map(int, input().split()) for _ in range(s): for j in range(V, v-1, -1): dp[j] = max(dp[j], dp[j - v] + w) print(dp[-1]) #参考答案2 s=input().split(' ') N=int(s[0]) w=int(s[1]) geshu=[0]*1000 zhongliang=[0]*1000 value=[0]*1000 ans=[0]*10000 for i in range(1,N+1): l=input().split(' ') geshu[i]=int(l[0]) zhongliang[i]=int(l[1]) value[i]=int(l[2]) for i in range(1,N+1): for j in range(1,geshu[i]+1): for k in range(w,zhongliang[i]-1,-1): ans[k]=max(ans[k],ans[k-zhongliang[i]]+value[i]) print(ans[w])

答案解析

评分标准:

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

4 分:能正确输出第二组数据;

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

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

4 分:能正确输出第五组数据;

5 分:能正确输出第六组数据。

上一题 下一题