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

A38872. (注.input()输入函数的括号中不允许添加任何信息)编程实现期末考试小明取得了优异的成绩,妈妈为鼓励小明再接再厉,在网购平台指定了N(2<=N<=50)件礼物供小明挑选。挑选前妈妈提出了以下要求:1)每种礼物只能挑选1件;2)所挑选的礼物总价格不能大于V(1<=V<=100)。已知N件礼物中每件礼物的价格和小明对每件礼物的喜爱值(喜爱值越大喜爱程度越高),请你帮助小明挑选礼物,使得挑…

填空题 困难

题目描述

题目描述

(注.input()输入函数的括号中不允许添加任何信息)

编程实现

期末考试小明取得了优异的成绩,妈妈为鼓励小明再接再厉,在网购平台指定了N(2<=N<=50)件礼物供小明挑选。挑选前妈妈提出了以下要求:

1)每种礼物只能挑选1件;

2)所挑选的礼物总价格不能大于V(1<=V<=100)。

已知N件礼物中每件礼物的价格和小明对每件礼物的喜爱值(喜爱值越大喜爱程度越高),请你帮助小明挑选礼物,使得挑选的所有礼物在满足要求的前提下,总的喜爱值最大,并输出最大喜爱值。

例如:

N=3,V=5,3件礼物的价格和喜爱值分别为(1,2),(2,4),(3,3)。

可挑选第二件礼物(2,4)和第三件礼物(3,3),总价格为5(5=2+3),总喜爱值为7(7=4+3),总价格不大于5且喜爱值最大,输出7。

输入描述

第一行输入两个正整数N(2≤N≤50)和V(1≤V≤100),分别表示指定的礼物数量和所挑选的礼物总价格不能大于的值,正整数之间以一个英文逗号隔开

第二行开始,输入N行,每行输入两个正整数J(1≤J≤V)和K(1≤K≤100),分别表示每件礼物的价格和喜爱值,正整数之间以一个英文逗号隔开

输出描述

输出一个整数,表示在满足题目要求下的最大喜爱值

样例输入

3,5

1,2

2,4

3,3

样例输出

7

参考答案

n,v=map(int,input().split(',')) ls=[] ls.append([0,0]) for i in range(n): j,k=map(int,input().split(',')) ls.append([j,k]) value=[[0 for j in range(v+1)]for i in range(n+1)] for i in range(1,n+1): for j in range(1,v+1): value[i][j]=value[i-1][j] if j>= ls[i][0]: value[i][j]=max(value[i][j],value[i-1][j-ls[i][0]]+ls[i][1]) print(value[n][v])
上一题 下一题