校招真题练习009 配比(京东)

配比

题目描述
小M要制作一种黑暗饮料,这种饮料的原料有n种,编号为1-n,已知小M的容器最多容纳V升材料,黑暗料理的各种原料配比为 a1 : a2 : a3 : ... : an, 每种原料分别有b1,b2,... bn升。 问小M最多可以制作多少升这种饮料。小M使用的各种原料体积和不能超过V。

输入描述:
输入第一行,两个正整数n和V,表示原料种类数和容器容积。(1<=n<=1000,1<=V<=1000000) 输入第二行包含n个数a1,a2,a3,...an,表示n种原料的配比。 输入第三行包含n个数b1,b2,b3...bn,表示小M拥有的各种原料数。 (数字间以空格隔开)
输出描述:
输出包含一个非负数,表示小M最多可以制作多少饮料,结果保留4位小数。

 1 line0 = list(map(float,input().split()))
 2 n = int(line0[0])
 3 V = line0[1]
 4 line1 = list(map(int,input().split()))
 5 line2 = list(map(int,input().split()))
 6 
 7 array = []
 8 for i in range(n):
 9     array.append((i,line1[i],line2[i],line2[i]/line1[i]))
10 array = sorted(array,key=lambda x:(x[3]))
11 #print(array)
12 
13 sums = 0
14 for i in range(len(array)):
15     part = array[i][1] / array[0][1] * array[0][2]
16     sums += part
17 if sums < V:
18     print('%.4f' % sums)
19 else:
20     print('%.4f' % V)

数据结构:数组

算法思路:贪心

猜你喜欢

转载自www.cnblogs.com/asenyang/p/11097007.html
今日推荐